700
How can I filter the check-boxes (method 1)

Dim oGrid as P
Dim var_Column as P
Dim var_Editor as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
var_Column = oGrid.Columns.Add("Check")
	var_Editor = var_Column.Editor
		var_Editor.EditType = 19
		' var_Editor.Option(17) = 1
		oGrid.TemplateDef = "dim var_Editor"
		oGrid.TemplateDef = var_Editor
		oGrid.Template = "var_Editor.Option(17) = 1"

	var_Column.DisplayFilterButton = .t.
	var_Column.DisplayFilterPattern = .f.
	var_Column.FilterType = 6
var_Items = oGrid.Items
	var_Items.AddItem(.t.)
	var_Items.AddItem(.t.)
	var_Items.AddItem(.f.)
	var_Items.AddItem(.t.)
	var_Items.AddItem(.f.)
	var_Items.AddItem(.t.)
	var_Items.AddItem(.f.)

699
How can add a button to control

' Occurs when user clicks on the cell's button.
function ButtonClick as v (Item  as  OLE::Exontrol.Grid.1::HITEM,ColIndex  as  N,Key  as  A)
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	? "ButtonClick" 
	? oGrid.Items.CellCaption(Item,ColIndex) 
	? Key 
end function

Dim h as N
Dim oGrid as P
Dim s as 
Dim var_Column as P
Dim var_Column1 as P
Dim var_Columns as P
Dim var_Editor as P
Dim var_Editor1 as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.DefaultItemHeight = 22
oGrid.HeaderHeight = 22
oGrid.Appearance = 0
oGrid.DrawGridLines = -2
oGrid.ScrollBySingleLine = .f.
oGrid.Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
oGrid.Template = "HTMLPicture(`pic1`) = `c:\exontrol\images\auction.gif`" // oGrid.HTMLPicture("pic1") = "c:\exontrol\images\auction.gif"
var_Columns = oGrid.Columns
	var_Column = var_Columns.Add("Type")
		var_Column.Width = 48
		' var_Column.Def(17) = 1
		oGrid.TemplateDef = "dim var_Column"
		oGrid.TemplateDef = var_Column
		oGrid.Template = "var_Column.Def(17) = 1"

	var_Column1 = var_Columns.Add("Appearance")
		' var_Column1.Def(17) = 1
		oGrid.TemplateDef = "dim var_Column1"
		oGrid.TemplateDef = var_Column1
		oGrid.Template = "var_Column1.Def(17) = 1"

		var_Column1.Alignment = 1
		var_Column1.HeaderAlignment = 1
var_Items = oGrid.Items
	h = var_Items.AddItem("Items.<b>CellHasButton</b> property")
	' var_Items.CellValue(h,1) = "Button <b>1</b>"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = `Button <b>1</b>`"

	' var_Items.CellHasButton(h,1) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHasButton(h,1) = True"

	h = var_Items.AddItem("Items.<b>CellButtonAutoWidth</b> property")
	' var_Items.CellValue(h,1) = " Button <b>2</b> "
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = ` Button <b>2</b> `"

	' var_Items.CellHasButton(h,1) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHasButton(h,1) = True"

	' var_Items.CellButtonAutoWidth(h,1) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellButtonAutoWidth(h,1) = True"

	h = var_Items.AddItem("Items.<b>CellHasButton</b> property")
	' var_Items.CellValue(h,1) = " <img>2</img>Button <b>3</b> "
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = ` <img>2</img>Button <b>3</b> `"

	' var_Items.CellHasButton(h,1) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHasButton(h,1) = True"

	' var_Items.CellButtonAutoWidth(h,1) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellButtonAutoWidth(h,1) = True"

	h = var_Items.AddItem("Items.<b>CellHasButton</b> property")
	' var_Items.ItemHeight(h) = 32
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemHeight(h) = 32"

	' var_Items.CellValue(h,1) = " <img>2</img>Button <b>4</b> <img>pic1</img> "
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = ` <img>2</img>Button <b>4</b> <img>pic1</img> `"

	' var_Items.CellHasButton(h,1) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHasButton(h,1) = True"

	' var_Items.CellButtonAutoWidth(h,1) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellButtonAutoWidth(h,1) = True"

	h = var_Items.AddItem("Items.<b>CellHasButton</b> in splitted cells")
	' var_Items.CellValue(h,1) = " Button <b>5.1</b> "
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = ` Button <b>5.1</b> `"

	' var_Items.CellHasButton(h,1) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHasButton(h,1) = True"

	' var_Items.CellButtonAutoWidth(h,1) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellButtonAutoWidth(h,1) = True"

	s = var_Items.SplitCell(h,1)
	' var_Items.CellValue(0,s) = " Button <b>5.2</b> "
	oGrid.TemplateDef = "dim var_Items,s"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = s
	oGrid.Template = "var_Items.CellValue(0,s) = ` Button <b>5.2</b> `"

	' var_Items.CellHasButton(0,s) = .t.
	oGrid.TemplateDef = "dim var_Items,s"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = s
	oGrid.Template = "var_Items.CellHasButton(0,s) = True"

	' var_Items.CellButtonAutoWidth(0,s) = .t.
	oGrid.TemplateDef = "dim var_Items,s"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = s
	oGrid.Template = "var_Items.CellButtonAutoWidth(0,s) = True"

	h = var_Items.AddItem("Column.<b>Editor</b>, Items.<b>CellEditor</b>")
	' var_Items.CellValue(h,1) = "Visible when clicking the cell"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = `Visible when clicking the cell`"

	var_Editor = var_Items.CellEditor(h,1)
		var_Editor.EditType = 1
		var_Editor.AddButton("B1",1,0,"This is a bit of text that's shown when the cursor hovers the button B1")
		var_Editor.AddButton("B3",2,1,"This is a bit of text that's shown when the cursor hovers the button B3")
		var_Editor.AddButton("B4",1,1,"This is a bit of text that's shown when the cursor hovers the button B4")
		var_Editor.ButtonWidth = 24
	h = var_Items.AddItem("Column.<b>Editor</b>, Items.<b>CellEditor</b>")
	' var_Items.CellValue(h,1) = 3
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = 3"

	var_Editor1 = var_Items.CellEditor(h,1)
		var_Editor1.EditType = 6
		var_Editor1.AddItem(1,"Flag 1")
		var_Editor1.AddItem(2,"Flag 2")
		var_Editor1.AddItem(4,"Flag 4")
		var_Editor1.AddItem(8,"Flag 8")
		var_Editor1.AddButton("C1",1,0,"This is a bit of text that's shown when the cursor hovers the button C1")
		var_Editor1.AddButton("C3",2,0,"This is a bit of text that's shown when the cursor hovers the button C2")
		var_Editor1.AddButton("C4",1,0,"This is a bit of text that's shown when the cursor hovers the button C3")
		var_Editor1.ButtonWidth = 24
oGrid.EndUpdate()

698
The item is not getting selected when clicking the cell's checkbox. What should I do

' Fired after cell's state has been changed.
function CellStateChanged as v (Item  as  OLE::Exontrol.Grid.1::HITEM,ColIndex  as  N)
	Dim var_Items as local
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	' oGrid.Items.SelectItem(Item) = .t.
	var_Items = oGrid.Items
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.SelectItem(Item) = True"

end function

Dim oGrid as P
Dim var_Column as local
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
' oGrid.Columns.Add("Check").Def(0) = .t.
var_Column = oGrid.Columns.Add("Check")
oGrid.TemplateDef = "dim var_Column"
oGrid.TemplateDef = var_Column
oGrid.Template = "var_Column.Def(0) = True"

var_Items = oGrid.Items
	var_Items.AddItem(0)
	var_Items.AddItem(1)
	var_Items.AddItem(2)
	var_Items.AddItem(3)

697
Is it possible to limit the height of the item while resizing

' Occurs after a new Item has been inserted to Items collection.
function AddItem as v (Item  as  OLE::Exontrol.Grid.1::HITEM)
	Dim var_Items as local
	Dim var_Items1 as local
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	' oGrid.Items.ItemMinHeight(Item) = 18
	var_Items = oGrid.Items
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.ItemMinHeight(Item) = 18"
	' oGrid.Items.ItemMaxHeight(Item) = 72
	var_Items1 = oGrid.Items
	oGrid.TemplateDef = "dim var_Items1"
	oGrid.TemplateDef = var_Items1
	oGrid.Template = "var_Items1.ItemMaxHeight(Item) = 72"

end function

Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.ItemsAllowSizing = -1
oGrid.ScrollBySingleLine = .f.
oGrid.BackColorAlternate = 15790320
oGrid.Columns.Add("Names")
var_Items = oGrid.Items
	var_Items.AddItem("Mantel")
	var_Items.AddItem("Mechanik")
	var_Items.AddItem("Motor")
	var_Items.AddItem("Murks")
	var_Items.AddItem("Märchen")
	var_Items.AddItem("Möhren")
	var_Items.AddItem("Mühle")
oGrid.Columns.Item(0).SortOrder = 1
oGrid.EndUpdate()

696
Is it possible to copy the hierarchy of the control using the GetItems method

Dim h as N
Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.LinesAtRoot = -1
oGrid.Columns.Add("Def")
var_Items = oGrid.Items
	h = var_Items.AddItem("Root")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
oGrid.PutItems(oGrid.GetItems(-1))

695
Is it possible to auto-numbering the children items but still keeps the position after filtering

Dim h as N
Dim oGrid as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Column3 as P
Dim var_Column4 as P
Dim var_Column5 as P
Dim var_Column6 as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
var_Column = oGrid.Columns.Add("Items")
	var_Column.DisplayFilterButton = .t.
	var_Column.FilterType = 240
	var_Column.Filter = "Child 2"
var_Column1 = oGrid.Columns.Add("Pos.1")
	var_Column1.FormatColumn = "1 ropos ''"
	var_Column1.Position = 0
	var_Column1.Width = 32
	var_Column1.AllowSizing = .f.
var_Column2 = oGrid.Columns.Add("Pos.2")
	var_Column2.FormatColumn = "1 ropos ':'"
	var_Column2.Position = 1
	var_Column2.Width = 32
	var_Column2.AllowSizing = .f.
var_Column3 = oGrid.Columns.Add("Pos.3")
	var_Column3.FormatColumn = "1 ropos ':|A-Z'"
	var_Column3.Position = 2
	var_Column3.Width = 32
	var_Column3.AllowSizing = .f.
var_Column4 = oGrid.Columns.Add("Pos.4")
	var_Column4.FormatColumn = "1 ropos '|A-Z|'"
	var_Column4.Position = 3
	var_Column4.Width = 32
	var_Column4.AllowSizing = .f.
var_Column5 = oGrid.Columns.Add("Pos.5")
	var_Column5.FormatColumn = "'<font Tahoma;7>' + 1 ropos '-<b>||A-Z'"
	' var_Column5.Def(17) = 1
	oGrid.TemplateDef = "dim var_Column5"
	oGrid.TemplateDef = var_Column5
	oGrid.Template = "var_Column5.Def(17) = 1"

	var_Column5.Position = 4
	var_Column5.Width = 32
	var_Column5.AllowSizing = .f.
var_Column6 = oGrid.Columns.Add("Pos.6")
	var_Column6.FormatColumn = "'<b>'+ 1 ropos '</b>:<fgcolor=FF0000>|A-Z|'"
	' var_Column6.Def(17) = 1
	oGrid.TemplateDef = "dim var_Column6"
	oGrid.TemplateDef = var_Column6
	oGrid.Template = "var_Column6.Def(17) = 1"

	var_Column6.Position = 5
	var_Column6.Width = 48
	var_Column6.AllowSizing = .f.
var_Items = oGrid.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
oGrid.ApplyFilter()
oGrid.EndUpdate()

694
Is it possible to auto-numbering the children items too

Dim h as N
Dim oGrid as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Column3 as P
Dim var_Column4 as P
Dim var_Column5 as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
oGrid.Columns.Add("Items")
var_Column = oGrid.Columns.Add("Pos.1")
	var_Column.FormatColumn = "1 rpos ''"
	var_Column.Position = 0
	var_Column.Width = 32
	var_Column.AllowSizing = .f.
var_Column1 = oGrid.Columns.Add("Pos.2")
	var_Column1.FormatColumn = "1 rpos ':'"
	var_Column1.Position = 1
	var_Column1.Width = 32
	var_Column1.AllowSizing = .f.
var_Column2 = oGrid.Columns.Add("Pos.3")
	var_Column2.FormatColumn = "1 rpos ':|A-Z'"
	var_Column2.Position = 2
	var_Column2.Width = 32
	var_Column2.AllowSizing = .f.
var_Column3 = oGrid.Columns.Add("Pos.4")
	var_Column3.FormatColumn = "1 rpos '|A-Z|'"
	var_Column3.Position = 3
	var_Column3.Width = 32
	var_Column3.AllowSizing = .f.
var_Column4 = oGrid.Columns.Add("Pos.5")
	var_Column4.FormatColumn = "'<font Tahoma;7>' + 1 rpos '-<b>||A-Z'"
	' var_Column4.Def(17) = 1
	oGrid.TemplateDef = "dim var_Column4"
	oGrid.TemplateDef = var_Column4
	oGrid.Template = "var_Column4.Def(17) = 1"

	var_Column4.Position = 4
	var_Column4.Width = 32
	var_Column4.AllowSizing = .f.
var_Column5 = oGrid.Columns.Add("Pos.6")
	var_Column5.FormatColumn = "'<b>'+ 1 rpos '</b>:<fgcolor=FF0000>|A-Z|'"
	' var_Column5.Def(17) = 1
	oGrid.TemplateDef = "dim var_Column5"
	oGrid.TemplateDef = var_Column5
	oGrid.Template = "var_Column5.Def(17) = 1"

	var_Column5.Position = 5
	var_Column5.Width = 48
	var_Column5.AllowSizing = .f.
var_Items = oGrid.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
oGrid.EndUpdate()

693
Is it possible to cancel or discard the values during validation

' Occurs before user changes the cell's value.
function ValidateValue as v (Item  as  OLE::Exontrol.Grid.1::HITEM,ColIndex  as  N,NewValue  as  A,Cancel  as  L)
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	? "ValidateValue" 
	? NewValue 
	? "Change the Cancel parameter for ValidateValue event to accept/decline the newly value. " 
	? "The DiscardValidateValue restores back the previously values." 
	oGrid.DiscardValidateValue()
end function

Dim oGrid as P
Dim var_Editor as local
Dim var_Editor1 as local
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.CauseValidateValue = -1
' oGrid.Columns.Add("Date").Editor.EditType = 7
var_Editor = oGrid.Columns.Add("Date").Editor
oGrid.TemplateDef = "dim var_Editor"
oGrid.TemplateDef = var_Editor
oGrid.Template = "var_Editor.EditType = 7"

' oGrid.Columns.Add("Text").Editor.EditType = 1
var_Editor1 = oGrid.Columns.Add("Text").Editor
oGrid.TemplateDef = "dim var_Editor1"
oGrid.TemplateDef = var_Editor1
oGrid.Template = "var_Editor1.EditType = 1"

var_Items = oGrid.Items
	' var_Items.CellValue(var_Items.AddItem({01/01/2001}),1) = "text"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(#1/1/2001#),1) = `text`"

	' var_Items.CellValue(var_Items.AddItem({01/01/2001}),1) = "text"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(#1/1/2001#),1) = `text`"

	' var_Items.CellValue(var_Items.AddItem({01/01/2001}),1) = "text"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(#1/1/2001#),1) = `text`"

	' var_Items.CellValue(var_Items.AddItem({01/01/2001}),1) = "text"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(#1/1/2001#),1) = `text`"

	' var_Items.CellValue(var_Items.AddItem({01/01/2001}),1) = "text"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(#1/1/2001#),1) = `text`"

oGrid.EndUpdate()

692
Is it possible to validate the values of the cells only when user leaves the focused item
' Occurs before user changes the cell's value.
function ValidateValue as v (Item  as  OLE::Exontrol.Grid.1::HITEM,ColIndex  as  N,NewValue  as  A,Cancel  as  L)
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	? "ValidateValue" 
	? NewValue 
	? "Change the Cancel parameter for ValidateValue event to accept/decline the newly value. " 
	Cancel = .t.
	? "You can not leave the item/record until the Cancel is False." 
end function

Dim oGrid as P
Dim var_Editor as local
Dim var_Editor1 as local
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.CauseValidateValue = 1
' oGrid.Columns.Add("Date").Editor.EditType = 7
var_Editor = oGrid.Columns.Add("Date").Editor
oGrid.TemplateDef = "dim var_Editor"
oGrid.TemplateDef = var_Editor
oGrid.Template = "var_Editor.EditType = 7"

' oGrid.Columns.Add("Text").Editor.EditType = 1
var_Editor1 = oGrid.Columns.Add("Text").Editor
oGrid.TemplateDef = "dim var_Editor1"
oGrid.TemplateDef = var_Editor1
oGrid.Template = "var_Editor1.EditType = 1"

var_Items = oGrid.Items
	' var_Items.CellValue(var_Items.AddItem({01/01/2001}),1) = "text"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(#1/1/2001#),1) = `text`"

	' var_Items.CellValue(var_Items.AddItem({01/01/2001}),1) = "text"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(#1/1/2001#),1) = `text`"

	' var_Items.CellValue(var_Items.AddItem({01/01/2001}),1) = "text"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(#1/1/2001#),1) = `text`"

	' var_Items.CellValue(var_Items.AddItem({01/01/2001}),1) = "text"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(#1/1/2001#),1) = `text`"

	' var_Items.CellValue(var_Items.AddItem({01/01/2001}),1) = "text"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(#1/1/2001#),1) = `text`"

oGrid.EndUpdate()

691
We would like to validate the values of the cells. Is it possible

' Occurs before user changes the cell's value.
function ValidateValue as v (Item  as  OLE::Exontrol.Grid.1::HITEM,ColIndex  as  N,NewValue  as  A,Cancel  as  L)
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	? "ValidateValue" 
	? NewValue 
	? "Change the Cancel parameter for ValidateValue event to accept/decline the newly value." 
	Cancel = .t.
	? "You can not leave the cell until the Cancel is False." 
end function

Dim oGrid as P
Dim var_Editor as local
Dim var_Editor1 as local
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.CauseValidateValue = -1
' oGrid.Columns.Add("Date").Editor.EditType = 7
var_Editor = oGrid.Columns.Add("Date").Editor
oGrid.TemplateDef = "dim var_Editor"
oGrid.TemplateDef = var_Editor
oGrid.Template = "var_Editor.EditType = 7"

' oGrid.Columns.Add("Text").Editor.EditType = 1
var_Editor1 = oGrid.Columns.Add("Text").Editor
oGrid.TemplateDef = "dim var_Editor1"
oGrid.TemplateDef = var_Editor1
oGrid.Template = "var_Editor1.EditType = 1"

var_Items = oGrid.Items
	' var_Items.CellValue(var_Items.AddItem({01/01/2001}),1) = "text"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(#1/1/2001#),1) = `text`"

	' var_Items.CellValue(var_Items.AddItem({01/01/2001}),1) = "text"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(#1/1/2001#),1) = `text`"

	' var_Items.CellValue(var_Items.AddItem({01/01/2001}),1) = "text"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(#1/1/2001#),1) = `text`"

	' var_Items.CellValue(var_Items.AddItem({01/01/2001}),1) = "text"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(#1/1/2001#),1) = `text`"

	' var_Items.CellValue(var_Items.AddItem({01/01/2001}),1) = "text"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(#1/1/2001#),1) = `text`"

oGrid.EndUpdate()

690
Is there any way to add auto-numbering

Dim oGrid as P
Dim var_Column as P
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
var_Columns = oGrid.Columns
	var_Columns.Add("Items")
	var_Column = var_Columns.Add("Pos")
		var_Column.FormatColumn = "1 pos ''"
		var_Column.Position = 0
var_Items = oGrid.Items
	var_Items.AddItem("Item 1")
	var_Items.AddItem("Item 2")
	var_Items.AddItem("Item 3")

689
Does your control supports multiple lines tooltip

Dim oGrid as P
Dim var_Column as local

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.Template = "HTMLPicture(`pic1`) = `c:\exontrol\images\zipdisk.gif`" // oGrid.HTMLPicture("pic1") = "c:\exontrol\images\zipdisk.gif"
oGrid.ToolTipDelay = 1
' oGrid.Columns.Add("tootip").ToolTip = "<br><font Tahoma;10>This</font> is a <b>multi-lines</b> tooltip assigned to a column. The tooltip supports built-in HTML tags, icons and pictures.<br><br><br><img>pic1</img> picture ... <br><br>"
var_Column = oGrid.Columns.Add("tootip")
oGrid.TemplateDef = "dim var_Column"
oGrid.TemplateDef = var_Column
oGrid.Template = "var_Column.ToolTip = `<br><font Tahoma;10>This</font> is a <b>multi-lines</b> tooltip assigned to a column. The tooltip supports built-in HTML tags, icons and pictures.<br><br><br><img>pic1</img> picture ... <br><br>`"


688
How can I prevent highlighting the column from the cursor - point

Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Column2 as local
Dim var_Column3 as local
Dim var_Column4 as local
Dim var_Column5 as local
Dim var_Column6 as local
Dim var_Column7 as local

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.VisualAppearance.Add(1,"gBFLBCJwBAEHhEJAEGg4BI0IQAAYAQGKIYBkAKBQAGaAoDDUOQzQwAAxDKKUEwsACEIrjKCYVgOHYYRrIMYgBCMJhLEoaZLhEZRQiqDYtRDFQBSDDcPw/EaRZohGaYJgEgI=")
oGrid.Template = "Background(32) = 16777216" // oGrid.Background(32) = 16777216
' oGrid.Columns.Add("S").Width = 32
var_Column = oGrid.Columns.Add("S")
oGrid.TemplateDef = "dim var_Column"
oGrid.TemplateDef = var_Column
oGrid.Template = "var_Column.Width = 32"

' oGrid.Columns.Add("Level 1").LevelKey = 1
var_Column1 = oGrid.Columns.Add("Level 1")
oGrid.TemplateDef = "dim var_Column1"
oGrid.TemplateDef = var_Column1
oGrid.Template = "var_Column1.LevelKey = 1"

' oGrid.Columns.Add("Level 2").LevelKey = 1
var_Column2 = oGrid.Columns.Add("Level 2")
oGrid.TemplateDef = "dim var_Column2"
oGrid.TemplateDef = var_Column2
oGrid.Template = "var_Column2.LevelKey = 1"

' oGrid.Columns.Add("Level 3").LevelKey = 1
var_Column3 = oGrid.Columns.Add("Level 3")
oGrid.TemplateDef = "dim var_Column3"
oGrid.TemplateDef = var_Column3
oGrid.Template = "var_Column3.LevelKey = 1"

' oGrid.Columns.Add("E1").Width = 32
var_Column4 = oGrid.Columns.Add("E1")
oGrid.TemplateDef = "dim var_Column4"
oGrid.TemplateDef = var_Column4
oGrid.Template = "var_Column4.Width = 32"

' oGrid.Columns.Add("E2").Width = 32
var_Column5 = oGrid.Columns.Add("E2")
oGrid.TemplateDef = "dim var_Column5"
oGrid.TemplateDef = var_Column5
oGrid.Template = "var_Column5.Width = 32"

' oGrid.Columns.Add("E3").Width = 32
var_Column6 = oGrid.Columns.Add("E3")
oGrid.TemplateDef = "dim var_Column6"
oGrid.TemplateDef = var_Column6
oGrid.Template = "var_Column6.Width = 32"

' oGrid.Columns.Add("E4").Width = 32
var_Column7 = oGrid.Columns.Add("E4")
oGrid.TemplateDef = "dim var_Column7"
oGrid.TemplateDef = var_Column7
oGrid.Template = "var_Column7.Width = 32"


687
Is it possible display numbers in the same format no matter of regional settings in the control panel

Dim h as N
Dim oGrid as P
Dim var_Column as local
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
' oGrid.Columns.Add("Def").Def(17) = 1
var_Column = oGrid.Columns.Add("Def")
oGrid.TemplateDef = "dim var_Column"
oGrid.TemplateDef = var_Column
oGrid.Template = "var_Column.Def(17) = 1"

var_Items = oGrid.Items
	h = var_Items.AddItem(100000.27)
	' var_Items.FormatCell(h,0) = "(value format '') +  ' <fgcolor=808080>(default positive)'"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `(value format '') +  ' <fgcolor=808080>(default positive)'`"

	h = var_Items.AddItem(100000.27)
	' var_Items.FormatCell(h,0) = "(value format '2|.|3|,|1|1')"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `(value format '2|.|3|,|1|1')`"

	h = var_Items.AddItem(-100000.27)
	' var_Items.FormatCell(h,0) = "(value format '') +  ' <fgcolor=808080>(default negative)'"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `(value format '') +  ' <fgcolor=808080>(default negative)'`"

	h = var_Items.AddItem(-100000.27)
	' var_Items.FormatCell(h,0) = "(value format '2|.|3|,|1|1')"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `(value format '2|.|3|,|1|1')`"

oGrid.EndUpdate()

686
Is it possible to add a 0 for numbers less than 1 instead .7 to show 0.8

Dim h as N
Dim oGrid as P
Dim var_Column as local
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
' oGrid.Columns.Add("Def").Def(17) = 1
var_Column = oGrid.Columns.Add("Def")
oGrid.TemplateDef = "dim var_Column"
oGrid.TemplateDef = var_Column
oGrid.Template = "var_Column.Def(17) = 1"

var_Items = oGrid.Items
	h = var_Items.AddItem(0.27)
	' var_Items.FormatCell(h,0) = "(value format '') +  ' <fgcolor=808080>(default)'"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `(value format '') +  ' <fgcolor=808080>(default)'`"

	h = var_Items.AddItem(0.27)
	' var_Items.FormatCell(h,0) = "(value format '|||||0') +  ' <fgcolor=808080>(Display no leading zeros)'"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `(value format '|||||0') +  ' <fgcolor=808080>(Display no leading zeros)'`"

oGrid.EndUpdate()

685
How can I specify the format for negative numbers

Dim h as N
Dim oGrid as P
Dim var_Column as local
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
' oGrid.Columns.Add("Def").Def(17) = 1
var_Column = oGrid.Columns.Add("Def")
oGrid.TemplateDef = "dim var_Column"
oGrid.TemplateDef = var_Column
oGrid.Template = "var_Column.Def(17) = 1"

var_Items = oGrid.Items
	h = var_Items.AddItem(-100000.27)
	' var_Items.FormatCell(h,0) = "(value format '') +  ' <fgcolor=808080>(default)'"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `(value format '') +  ' <fgcolor=808080>(default)'`"

	h = var_Items.AddItem(-100000.27)
	' var_Items.FormatCell(h,0) = "(value format '||||1') +  ' <fgcolor=808080>(Negative sign, number; for example, -1.1)'"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `(value format '||||1') +  ' <fgcolor=808080>(Negative sign, number; for example, -1.1)'`"

oGrid.EndUpdate()

684
Is it possible to change the grouping character when display numbers

Dim h as N
Dim oGrid as P
Dim var_Column as local
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
' oGrid.Columns.Add("Def").Def(17) = 1
var_Column = oGrid.Columns.Add("Def")
oGrid.TemplateDef = "dim var_Column"
oGrid.TemplateDef = var_Column
oGrid.Template = "var_Column.Def(17) = 1"

var_Items = oGrid.Items
	h = var_Items.AddItem(100000.27)
	' var_Items.FormatCell(h,0) = "(value format '') +  ' <fgcolor=808080>(default)'"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `(value format '') +  ' <fgcolor=808080>(default)'`"

	h = var_Items.AddItem(100000.27)
	' var_Items.FormatCell(h,0) = "(value format '|||-') +  ' <fgcolor=808080>(grouping character is -)'"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `(value format '|||-') +  ' <fgcolor=808080>(grouping character is -)'`"

oGrid.EndUpdate()

683
How can I display numbers with 2 digits in each group

Dim h as N
Dim oGrid as P
Dim var_Column as local
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
' oGrid.Columns.Add("Def").Def(17) = 1
var_Column = oGrid.Columns.Add("Def")
oGrid.TemplateDef = "dim var_Column"
oGrid.TemplateDef = var_Column
oGrid.Template = "var_Column.Def(17) = 1"

var_Items = oGrid.Items
	h = var_Items.AddItem(100000.27)
	' var_Items.FormatCell(h,0) = "(value format '') +  ' <fgcolor=808080>(default)'"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `(value format '') +  ' <fgcolor=808080>(default)'`"

	h = var_Items.AddItem(100000.27)
	' var_Items.FormatCell(h,0) = "(value format '||2') +  ' <fgcolor=808080>(grouping by 2 digits)'"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `(value format '||2') +  ' <fgcolor=808080>(grouping by 2 digits)'`"

oGrid.EndUpdate()

682
How can I display my numbers using a different decimal separator

Dim h as N
Dim oGrid as P
Dim var_Column as local
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
' oGrid.Columns.Add("Def").Def(17) = 1
var_Column = oGrid.Columns.Add("Def")
oGrid.TemplateDef = "dim var_Column"
oGrid.TemplateDef = var_Column
oGrid.Template = "var_Column.Def(17) = 1"

var_Items = oGrid.Items
	h = var_Items.AddItem(100.27)
	' var_Items.FormatCell(h,0) = "(value format '') +  ' <fgcolor=808080>(default)'"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `(value format '') +  ' <fgcolor=808080>(default)'`"

	h = var_Items.AddItem(100.27)
	' var_Items.FormatCell(h,0) = "(value format '|;') +  ' <fgcolor=808080>(decimal separator is <b>;</b>)'"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `(value format '|;') +  ' <fgcolor=808080>(decimal separator is <b>;</b>)'`"

oGrid.EndUpdate()

681
Is it possible to display the numbers using 3 (three) digits

Dim h as N
Dim oGrid as P
Dim var_Column as local
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
' oGrid.Columns.Add("Def").Def(17) = 1
var_Column = oGrid.Columns.Add("Def")
oGrid.TemplateDef = "dim var_Column"
oGrid.TemplateDef = var_Column
oGrid.Template = "var_Column.Def(17) = 1"

var_Items = oGrid.Items
	h = var_Items.AddItem(100.27)
	' var_Items.FormatCell(h,0) = "(value format '') +  ' <fgcolor=808080>(default)'"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `(value format '') +  ' <fgcolor=808080>(default)'`"

	h = var_Items.AddItem(100.27)
	' var_Items.FormatCell(h,0) = "(value format '3') +  ' <fgcolor=808080>(3 digits)'"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `(value format '3') +  ' <fgcolor=808080>(3 digits)'`"

	h = var_Items.AddItem(100.27)
	' var_Items.FormatCell(h,0) = "(value format 2) +  '  <fgcolor=808080>(2 digits)'"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `(value format 2) +  '  <fgcolor=808080>(2 digits)'`"

	h = var_Items.AddItem(100.27)
	' var_Items.FormatCell(h,0) = "(value format 1) +  ' <fgcolor=808080>(1 digit)'"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `(value format 1) +  ' <fgcolor=808080>(1 digit)'`"

oGrid.EndUpdate()

680
Is there any option to show the tooltip programmatically

' Occurs when the user moves the mouse.
function MouseMove as v (Button  as  N,Shift  as  N,X  as  OLE::Exontrol.Grid.1::OLE_XPOS_PIXELS,Y  as  OLE::Exontrol.Grid.1::OLE_YPOS_PIXELS)
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	oGrid.ShowToolTip(oGrid.ItemFromPoint(-1,-1,c,hit),"","8","8")
end function

Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.Columns.Add("Def")
var_Items = oGrid.Items
	var_Items.AddItem("Item 1")
	var_Items.AddItem("Item 2")
	var_Items.AddItem("Item 3")
oGrid.EndUpdate()

679
How can I specify the column's width to be the same for all columns

Dim oGrid as P
Dim var_Columns as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
var_Columns = oGrid.Columns
	var_Columns.Add("A")
	var_Columns.Add("B")
	var_Columns.Add("C")
oGrid.DrawGridLines = -1
oGrid.ColumnAutoResize = .t.

678
How can I set the column's width to my desired width

Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Columns as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.ColumnAutoResize = .f.
var_Columns = oGrid.Columns
	' var_Columns.Add("A").Width = 128
	var_Column = var_Columns.Add("A")
	oGrid.TemplateDef = "dim var_Column"
	oGrid.TemplateDef = var_Column
	oGrid.Template = "var_Column.Width = 128"

	' var_Columns.Add("B").Width = 128
	var_Column1 = var_Columns.Add("B")
	oGrid.TemplateDef = "dim var_Column1"
	oGrid.TemplateDef = var_Column1
	oGrid.Template = "var_Column1.Width = 128"

oGrid.DrawGridLines = -1

677
Is it possible to format numbers

Dim h as N
Dim h1 as N
Dim oGrid as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Column3 as P
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.MarkSearchColumn = .f.
var_Columns = oGrid.Columns
	var_Columns.Add("Name")
	var_Column = var_Columns.Add("A")
		var_Column.SortType = 1
		var_Column.AllowSizing = .f.
		var_Column.Width = 36
		var_Column.FormatColumn = "len(value) ? value + ' +'"
		var_Column.Editor.EditType = 4
	var_Column1 = var_Columns.Add("B")
		var_Column1.SortType = 1
		var_Column1.AllowSizing = .f.
		var_Column1.Width = 36
		var_Column1.FormatColumn = "len(value) ? value + ' +'"
		var_Column1.Editor.EditType = 4
	var_Column2 = var_Columns.Add("C")
		var_Column2.SortType = 1
		var_Column2.AllowSizing = .f.
		var_Column2.Width = 36
		var_Column2.FormatColumn = "len(value) ? value + ' ='"
		var_Column2.Editor.EditType = 4
	var_Column3 = var_Columns.Add("A+B+C")
		var_Column3.SortType = 1
		var_Column3.Width = 64
		var_Column3.ComputedField = "dbl(%1)+dbl(%2)+dbl(%3)"
		var_Column3.FormatColumn = "type(value) in (0,1) ? 'null' : ( dbl(value)<0 ? '<fgcolor=FF0000>'+ (value format '2|.|3|,|1' ) : (dbl(value)>0 ? '<fgcolor=0000FF>+'+(value format '2|.|3|,' ): '0.00') )"
		' var_Column3.Def(17) = 1
		oGrid.TemplateDef = "dim var_Column3"
		oGrid.TemplateDef = var_Column3
		oGrid.Template = "var_Column3.Def(17) = 1"

var_Items = oGrid.Items
	h = var_Items.AddItem("Root")
	' var_Items.CellValueFormat(h,4) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,4) = 2"

	h1 = var_Items.InsertItem(h,,"Child 1")
	' var_Items.CellValue(h1,1) = 7
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,1) = 7"

	' var_Items.CellValue(h1,2) = 3
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,2) = 3"

	' var_Items.CellValue(h1,3) = 1
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,3) = 1"

	h1 = var_Items.InsertItem(h,,"Child 2")
	' var_Items.CellValue(h1,1) = -2
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,1) = -2"

	' var_Items.CellValue(h1,2) = -2
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,2) = -2"

	' var_Items.CellValue(h1,3) = -4
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,3) = -4"

	h1 = var_Items.InsertItem(h,,"Child 3")
	' var_Items.CellValue(h1,1) = 2
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,1) = 2"

	' var_Items.CellValue(h1,2) = 2
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,2) = 2"

	' var_Items.CellValue(h1,3) = -4
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,3) = -4"

	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

oGrid.EndUpdate()

676
How can I collapse all items

Dim h as N
Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
oGrid.Columns.Add("Items")
var_Items = oGrid.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(0) = .f.
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.ExpandItem(0) = False"

oGrid.EndUpdate()

675
How can I expand all items

Dim h as N
Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
oGrid.Columns.Add("Items")
var_Items = oGrid.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(0) = .t.
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.ExpandItem(0) = True"

oGrid.EndUpdate()

674
Can I display a total field without having to add a child item

Dim h as N
Dim oGrid as P
Dim var_Column as P
Dim var_Editor as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
var_Column = oGrid.Columns.Add("Numbers")
	var_Column.SortType = 1
	var_Editor = var_Column.Editor
		var_Editor.EditType = 4
		var_Editor.Numeric = 1
var_Items = oGrid.Items
	var_Items.AddItem(1)
	var_Items.AddItem(2)
	var_Items.AddItem(3)
	var_Items.AddItem(4)
	' var_Items.LockedItemCount(2) = 1
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.LockedItemCount(2) = 1"

	h = var_Items.LockedItem(2,0)
	' var_Items.CellValue(h,0) = "sum(all,dir,dbl(%0))"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,0) = `sum(all,dir,dbl(%0))`"

	' var_Items.SortableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SortableItem(h) = False"

	' var_Items.CellValueFormat(h,0) = 4
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,0) = 4"

	' var_Items.CellHAlignment(h,0) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHAlignment(h,0) = 2"

	' var_Items.FormatCell(h,0) = "'SUM: '+value"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `'SUM: '+value`"

oGrid.EndUpdate()

673
Can I display the number of child items

Dim h as N
Dim hx as 
Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.LinesAtRoot = 1
oGrid.Columns.Add("")
var_Items = oGrid.Items
	h = var_Items.AddItem("Root 1")
	hx = var_Items.SplitCell(h,0)
	' var_Items.CellValue(0,hx) = "count(current,dir,1)"
	oGrid.TemplateDef = "dim var_Items,hx"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hx
	oGrid.Template = "var_Items.CellValue(0,hx) = `count(current,dir,1)`"

	' var_Items.CellValueFormat(0,hx) = 4
	oGrid.TemplateDef = "dim var_Items,hx"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hx
	oGrid.Template = "var_Items.CellValueFormat(0,hx) = 4"

	' var_Items.FormatCell(0,hx) = "'Childs: ' + value"
	oGrid.TemplateDef = "dim var_Items,hx"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hx
	oGrid.Template = "var_Items.FormatCell(0,hx) = `'Childs: ' + value`"

	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("Root 2")
	hx = var_Items.SplitCell(h,0)
	' var_Items.CellValue(0,hx) = "count(current,dir,1)"
	oGrid.TemplateDef = "dim var_Items,hx"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hx
	oGrid.Template = "var_Items.CellValue(0,hx) = `count(current,dir,1)`"

	' var_Items.CellValueFormat(0,hx) = 4
	oGrid.TemplateDef = "dim var_Items,hx"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hx
	oGrid.Template = "var_Items.CellValueFormat(0,hx) = 4"

	' var_Items.FormatCell(0,hx) = "'Childs: ' + value"
	oGrid.TemplateDef = "dim var_Items,hx"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hx
	oGrid.Template = "var_Items.FormatCell(0,hx) = `'Childs: ' + value`"

	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	var_Items.InsertItem(h,,"Child 3")
	var_Items.InsertItem(h,,"Child 4")
oGrid.EndUpdate()

672
My field does not display the correctly computed value if I enter data using the control's editors ( concatenation of strings ). What am I doing wrong

Dim h as N
Dim oGrid as P
Dim var_Editor as P
Dim var_Editor1 as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.Columns.Add("T")
var_Editor = oGrid.Columns.Add("A").Editor
	var_Editor.Numeric = .t.
	var_Editor.EditType = 4
var_Editor1 = oGrid.Columns.Add("B").Editor
	var_Editor1.Numeric = .t.
	var_Editor1.EditType = 4
oGrid.Columns.Add("A+B")
var_Items = oGrid.Items
	h = var_Items.AddItem("Incorrect")
	' var_Items.CellToolTip(h,0) = "Just type a number in the column A or B. The result will be concaternated"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellToolTip(h,0) = `Just type a number in the column A or B. The result will be concaternated`"

	' var_Items.CellValue(h,1) = "10"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = `10`"

	' var_Items.CellValue(h,2) = "20"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,2) = `20`"

	' var_Items.CellValue(h,3) = "currency(%1+%2)"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,3) = `currency(%1+%2)`"

	' var_Items.CellValueFormat(h,3) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,3) = 2"

	h = var_Items.AddItem("Correct")
	' var_Items.CellValue(h,1) = 10
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = 10"

	' var_Items.CellValue(h,2) = 20
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,2) = 20"

	' var_Items.CellValue(h,3) = "currency(dbl(%1)+dbl(%2))"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,3) = `currency(dbl(%1)+dbl(%2))`"

	' var_Items.CellValueFormat(h,3) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,3) = 2"

oGrid.EndUpdate()

671
The CellValue/CellCaption property gets the result of a computed/total field with text formatting. Is it possible to get that value without text formatting

Dim h as N
Dim oGrid as P
Dim var_Editor as local
Dim var_Editor1 as local
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
' oGrid.Columns.Add("A").Editor.EditType = 4
var_Editor = oGrid.Columns.Add("A").Editor
oGrid.TemplateDef = "dim var_Editor"
oGrid.TemplateDef = var_Editor
oGrid.Template = "var_Editor.EditType = 4"

' oGrid.Columns.Add("B").Editor.EditType = 4
var_Editor1 = oGrid.Columns.Add("B").Editor
oGrid.TemplateDef = "dim var_Editor1"
oGrid.TemplateDef = var_Editor1
oGrid.Template = "var_Editor1.EditType = 4"

oGrid.Columns.Add("A+B")
var_Items = oGrid.Items
	h = var_Items.AddItem(10)
	' var_Items.CellValue(h,1) = 20
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = 20"

	' var_Items.CellValueFormat(h,2) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,2) = 2"

	' var_Items.CellValue(h,2) = "currency(dbl(%0)+dbl(%1))"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,2) = `currency(dbl(%0)+dbl(%1))`"

	? "CellCaption returns " 
	? var_Items.CellCaption(h,2) 
	? "CellValue returns " 
	? var_Items.CellValue(h,2) 
	? "ComputeValue returns " 
	? var_Items.ComputeValue("dbl(%0)+dbl(%1)",h,0,var_Items.CellValueFormat(h,2)) 
oGrid.EndUpdate()

670
Can I get the result of a specified formula as your control does using the ComputedField property
Dim h as N
Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.Columns.Add("A")
oGrid.Columns.Add("B")
var_Items = oGrid.Items
	h = var_Items.AddItem(10)
	' var_Items.CellValue(h,1) = 20
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = 20"

	? "A+B is " 
	? var_Items.ComputeValue("dbl(%0)+dbl(%1)",h,0,2) 
oGrid.EndUpdate()

669
Is it possible to get the text without HTML formatting

Dim h as N
Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.Columns.Add("")
var_Items = oGrid.Items
	h = var_Items.AddItem("<b>bold</b>")
	? var_Items.ComputeValue(var_Items.CellValue(h,0),h,0,1) 
oGrid.EndUpdate()

668
Can I specify an item to be a separator

Dim h as N
Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.TreeColumnIndex = -1
oGrid.SortOnClick = 0
oGrid.Columns.Add("Numbers")
var_Items = oGrid.Items
	var_Items.AddItem(1)
	var_Items.AddItem(2)
	h = var_Items.AddItem("separator")
	' var_Items.SelectableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SelectableItem(h) = False"

	' var_Items.ItemDivider(h) = 0
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemDivider(h) = 0"

	' var_Items.ItemDividerLineAlignment(h) = 1
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemDividerLineAlignment(h) = 1"

	' var_Items.ItemDividerLine(h) = 5
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemDividerLine(h) = 5"

	' var_Items.CellHAlignment(h,0) = 1
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHAlignment(h,0) = 1"

	var_Items.AddItem(3)
	var_Items.AddItem(4)
oGrid.EndUpdate()

667
How can I count only non-zero values

Dim h as N
Dim oGrid as P
Dim var_Column as local
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
' oGrid.Columns.Add("Numbers").SortType = 1
var_Column = oGrid.Columns.Add("Numbers")
oGrid.TemplateDef = "dim var_Column"
oGrid.TemplateDef = var_Column
oGrid.Template = "var_Column.SortType = 1"

var_Items = oGrid.Items
	var_Items.AddItem(1)
	var_Items.AddItem(2)
	var_Items.AddItem(0)
	var_Items.AddItem(0)
	var_Items.AddItem(0)
	var_Items.AddItem(0)
	var_Items.AddItem(3)
	var_Items.AddItem(4)
	h = var_Items.AddItem("sum(all,dir,dbl(%0)?1:0)")
	' var_Items.SortableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SortableItem(h) = False"

	' var_Items.CellValueFormat(h,0) = 4
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,0) = 4"

	' var_Items.CellHAlignment(h,0) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHAlignment(h,0) = 2"

	' var_Items.FormatCell(h,0) = "'COUNT non-zero: '+value"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `'COUNT non-zero: '+value`"

oGrid.EndUpdate()

666
How can I add a AVG ( average ) field

Dim h as N
Dim oGrid as P
Dim var_Column as local
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
' oGrid.Columns.Add("Numbers").SortType = 1
var_Column = oGrid.Columns.Add("Numbers")
oGrid.TemplateDef = "dim var_Column"
oGrid.TemplateDef = var_Column
oGrid.Template = "var_Column.SortType = 1"

var_Items = oGrid.Items
	var_Items.AddItem(1)
	var_Items.AddItem(2)
	var_Items.AddItem(3)
	var_Items.AddItem(4)
	h = var_Items.AddItem("avg(all,dir,dbl(%0))")
	' var_Items.SortableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SortableItem(h) = False"

	' var_Items.CellValueFormat(h,0) = 4
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,0) = 4"

	' var_Items.CellHAlignment(h,0) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHAlignment(h,0) = 2"

	' var_Items.FormatCell(h,0) = "'AVG: '+value"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `'AVG: '+value`"

oGrid.EndUpdate()

665
How can I add a COUNT field

Dim h as N
Dim oGrid as P
Dim var_Column as local
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
' oGrid.Columns.Add("Numbers").SortType = 1
var_Column = oGrid.Columns.Add("Numbers")
oGrid.TemplateDef = "dim var_Column"
oGrid.TemplateDef = var_Column
oGrid.Template = "var_Column.SortType = 1"

var_Items = oGrid.Items
	var_Items.AddItem(1)
	var_Items.AddItem(2)
	var_Items.AddItem(3)
	var_Items.AddItem(4)
	h = var_Items.AddItem("count(all,dir,0)")
	' var_Items.SortableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SortableItem(h) = False"

	' var_Items.CellValueFormat(h,0) = 4
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,0) = 4"

	' var_Items.CellHAlignment(h,0) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHAlignment(h,0) = 2"

	' var_Items.FormatCell(h,0) = "'COUNT: '+value"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `'COUNT: '+value`"

oGrid.EndUpdate()

664
How can I add a MAX field

Dim h as N
Dim oGrid as P
Dim var_Column as local
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
' oGrid.Columns.Add("Numbers").SortType = 1
var_Column = oGrid.Columns.Add("Numbers")
oGrid.TemplateDef = "dim var_Column"
oGrid.TemplateDef = var_Column
oGrid.Template = "var_Column.SortType = 1"

var_Items = oGrid.Items
	var_Items.AddItem(1)
	var_Items.AddItem(2)
	var_Items.AddItem(3)
	var_Items.AddItem(4)
	h = var_Items.AddItem("max(all,dir,dbl(%0))")
	' var_Items.SortableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SortableItem(h) = False"

	' var_Items.CellValueFormat(h,0) = 4
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,0) = 4"

	' var_Items.CellHAlignment(h,0) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHAlignment(h,0) = 2"

	' var_Items.FormatCell(h,0) = "'MAX: '+value"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `'MAX: '+value`"

oGrid.EndUpdate()

663
How can I add a MIN or MAX field (for numbers)

Dim h as N
Dim oGrid as P
Dim var_Column as local
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
' oGrid.Columns.Add("Numbers").SortType = 1
var_Column = oGrid.Columns.Add("Numbers")
oGrid.TemplateDef = "dim var_Column"
oGrid.TemplateDef = var_Column
oGrid.Template = "var_Column.SortType = 1"

var_Items = oGrid.Items
	var_Items.AddItem(11)
	var_Items.AddItem(21)
	var_Items.AddItem(3)
	var_Items.AddItem(4)
	h = var_Items.AddItem("min(all,dir,dbl(%0))")
	' var_Items.SortableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SortableItem(h) = False"

	' var_Items.CellValueFormat(h,0) = 4
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,0) = 4"

	' var_Items.CellHAlignment(h,0) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHAlignment(h,0) = 2"

	' var_Items.FormatCell(h,0) = "'MIN: '+value"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `'MIN: '+value`"

	h = var_Items.AddItem("max(all,dir,dbl(%0))")
	' var_Items.SortableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SortableItem(h) = False"

	' var_Items.CellValueFormat(h,0) = 4
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,0) = 4"

	' var_Items.CellHAlignment(h,0) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHAlignment(h,0) = 2"

	' var_Items.FormatCell(h,0) = "'MAX: '+value"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `'MAX: '+value`"

oGrid.EndUpdate()

662
How can I add a SUM field

Dim h as N
Dim oGrid as P
Dim var_Column as local
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
' oGrid.Columns.Add("Numbers").SortType = 1
var_Column = oGrid.Columns.Add("Numbers")
oGrid.TemplateDef = "dim var_Column"
oGrid.TemplateDef = var_Column
oGrid.Template = "var_Column.SortType = 1"

var_Items = oGrid.Items
	var_Items.AddItem(1)
	var_Items.AddItem(2)
	var_Items.AddItem(3)
	var_Items.AddItem(4)
	h = var_Items.AddItem("sum(all,dir,dbl(%0))")
	' var_Items.SortableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SortableItem(h) = False"

	' var_Items.CellValueFormat(h,0) = 4
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,0) = 4"

	' var_Items.CellHAlignment(h,0) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHAlignment(h,0) = 2"

	' var_Items.FormatCell(h,0) = "'SUM: '+value"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `'SUM: '+value`"

oGrid.EndUpdate()

661
How can I add total and subtotals fields

' Occurs when the user changes the cell's content.
function Change as v (Item  as  OLE::Exontrol.Grid.1::HITEM,ColIndex  as  N,NewValue  as  A)
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	oGrid.Refresh()
end function

Dim h as N
Dim oGrid as P
Dim var_Column as P
Dim var_Editor as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.LinesAtRoot = 1
oGrid.Columns.Add("Members")
var_Column = oGrid.Columns.Add("Values")
	var_Column.FormatColumn = "currency(value)"
	var_Editor = var_Column.Editor
		var_Editor.EditType = 4
		var_Editor.Numeric = .t.
var_Items = oGrid.Items
	h = var_Items.AddItem("Group 1")
	' var_Items.ItemBold(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemBold(h) = True"

	' var_Items.CellEditorVisible(h,1) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellEditorVisible(h,1) = False"

	' var_Items.CellValue(h,1) = "sum(current,dir,dbl(%1))"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = `sum(current,dir,dbl(%1))`"

	' var_Items.CellValueFormat(h,1) = 5 'exTotalField + exHTML
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,1) = 5"

	' var_Items.CellHAlignment(h,1) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHAlignment(h,1) = 2"

	' var_Items.CellValue(var_Items.InsertItem(h,,"Child 1"),1) = 10
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(InsertItem(h,,`Child 1`),1) = 10"

	' var_Items.CellValue(var_Items.InsertItem(h,,"Child 2"),1) = 20
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(InsertItem(h,,`Child 2`),1) = 20"

	' var_Items.CellValue(var_Items.InsertItem(h,,"Child 3"),1) = 30
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(InsertItem(h,,`Child 3`),1) = 30"

	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("Group 2")
	' var_Items.ItemBold(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemBold(h) = True"

	' var_Items.CellEditorVisible(h,1) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellEditorVisible(h,1) = False"

	' var_Items.CellValue(h,1) = "sum(current,dir,dbl(%1))"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = `sum(current,dir,dbl(%1))`"

	' var_Items.CellValueFormat(h,1) = 5 'exTotalField + exHTML
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,1) = 5"

	' var_Items.CellHAlignment(h,1) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHAlignment(h,1) = 2"

	' var_Items.CellValue(var_Items.InsertItem(h,,"Child 1"),1) = 5
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(InsertItem(h,,`Child 1`),1) = 5"

	' var_Items.CellValue(var_Items.InsertItem(h,,"Child 2"),1) = 15
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(InsertItem(h,,`Child 2`),1) = 15"

	' var_Items.CellValue(var_Items.InsertItem(h,,"Child 3"),1) = 35
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(InsertItem(h,,`Child 3`),1) = 35"

	h = var_Items.AddItem("total")
	' var_Items.CellValue(h,1) = "sum(all,rec,dbl(%1))"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = `sum(all,rec,dbl(%1))`"

	' var_Items.CellValueFormat(h,1) = 5 'exTotalField + exHTML
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,1) = 5"

	' var_Items.CellEditorVisible(h,1) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellEditorVisible(h,1) = False"

	' var_Items.FormatCell(h,1) = "'Total: <b>' + currency(value)"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,1) = `'Total: <b>' + currency(value)`"

	' var_Items.CellHAlignment(h,1) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHAlignment(h,1) = 2"

	' var_Items.ItemDivider(h) = 1
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemDivider(h) = 1"

	' var_Items.ItemDividerLineAlignment(h) = 1
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemDividerLineAlignment(h) = 1"

	' var_Items.ItemDividerLine(h) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemDividerLine(h) = 2"

	' var_Items.SortableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SortableItem(h) = False"

oGrid.EndUpdate()

660
Is is possible to have subtotal items, and a grand total item

' Occurs when the user changes the cell's content.
function Change as v (Item  as  OLE::Exontrol.Grid.1::HITEM,ColIndex  as  N,NewValue  as  A)
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	oGrid.Refresh()
end function

Dim h as N
Dim hT as N
Dim oGrid as P
Dim var_Column as P
Dim var_Editor as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.BackColor = 16777215
oGrid.LinesAtRoot = 1
oGrid.ShowFocusRect = .f.
oGrid.Columns.Add("Members")
var_Column = oGrid.Columns.Add("Values")
	var_Column.FormatColumn = "currency(value)"
	var_Editor = var_Column.Editor
		var_Editor.EditType = 4
		var_Editor.Numeric = .t.
var_Items = oGrid.Items
	h = var_Items.AddItem("Group 1")
	' var_Items.ItemBold(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemBold(h) = True"

	' var_Items.SortableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SortableItem(h) = False"

	' var_Items.CellEditorVisible(h,1) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellEditorVisible(h,1) = False"

	' var_Items.FormatCell(h,1) = " "
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,1) = ` `"

	' var_Items.CellValue(var_Items.InsertItem(h,,"Child 1"),1) = 10
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(InsertItem(h,,`Child 1`),1) = 10"

	' var_Items.CellValue(var_Items.InsertItem(h,,"Child 2"),1) = 20
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(InsertItem(h,,`Child 2`),1) = 20"

	' var_Items.CellValue(var_Items.InsertItem(h,,"Child 3"),1) = 30
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(InsertItem(h,,`Child 3`),1) = 30"

	hT = var_Items.InsertItem(h,,"subtotal")
	' var_Items.CellHAlignment(hT,1) = 2
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.CellHAlignment(hT,1) = 2"

	' var_Items.CellEditorVisible(hT,1) = .f.
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.CellEditorVisible(hT,1) = False"

	' var_Items.CellValue(hT,1) = "sum(parent,dir,dbl(%1))"
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.CellValue(hT,1) = `sum(parent,dir,dbl(%1))`"

	' var_Items.CellValueFormat(hT,1) = 5 'exTotalField + exHTML
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.CellValueFormat(hT,1) = 5"

	' var_Items.FormatCell(hT,1) = "'subtotal: <b>' + currency(value)"
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.FormatCell(hT,1) = `'subtotal: <b>' + currency(value)`"

	' var_Items.ItemDivider(hT) = 1
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.ItemDivider(hT) = 1"

	' var_Items.ItemDividerLineAlignment(hT) = 1
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.ItemDividerLineAlignment(hT) = 1"

	' var_Items.SortableItem(hT) = .f.
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.SortableItem(hT) = False"

	' var_Items.SelectableItem(hT) = .f.
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.SelectableItem(hT) = False"

	' var_Items.ItemDividerLine(hT) = 3
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.ItemDividerLine(hT) = 3"

	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("Group 2")
	' var_Items.ItemBold(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemBold(h) = True"

	' var_Items.SortableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SortableItem(h) = False"

	' var_Items.FormatCell(h,1) = " "
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,1) = ` `"

	' var_Items.CellEditorVisible(h,1) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellEditorVisible(h,1) = False"

	' var_Items.CellValue(var_Items.InsertItem(h,,"Child 1"),1) = 15
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(InsertItem(h,,`Child 1`),1) = 15"

	' var_Items.CellValue(var_Items.InsertItem(h,,"Child 2"),1) = 25
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(InsertItem(h,,`Child 2`),1) = 25"

	' var_Items.CellValue(var_Items.InsertItem(h,,"Child 3"),1) = 18
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(InsertItem(h,,`Child 3`),1) = 18"

	hT = var_Items.InsertItem(h,,"subtotal")
	' var_Items.CellHAlignment(hT,1) = 2
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.CellHAlignment(hT,1) = 2"

	' var_Items.CellEditorVisible(hT,1) = .f.
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.CellEditorVisible(hT,1) = False"

	' var_Items.CellValue(hT,1) = "sum(parent,dir,dbl(%1))"
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.CellValue(hT,1) = `sum(parent,dir,dbl(%1))`"

	' var_Items.CellValueFormat(hT,1) = 5 'exTotalField + exHTML
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.CellValueFormat(hT,1) = 5"

	' var_Items.FormatCell(hT,1) = "'subtotal: <b>' + currency(value)"
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.FormatCell(hT,1) = `'subtotal: <b>' + currency(value)`"

	' var_Items.ItemDivider(hT) = 1
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.ItemDivider(hT) = 1"

	' var_Items.ItemDividerLineAlignment(hT) = 1
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.ItemDividerLineAlignment(hT) = 1"

	' var_Items.ItemDividerLine(hT) = 3
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.ItemDividerLine(hT) = 3"

	' var_Items.SortableItem(hT) = .f.
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.SortableItem(hT) = False"

	' var_Items.SelectableItem(hT) = .f.
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.SelectableItem(hT) = False"

	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("total")
	' var_Items.CellValue(h,1) = "sum(all,rec,dbl(%1))"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = `sum(all,rec,dbl(%1))`"

	' var_Items.CellValueFormat(h,1) = 5 'exTotalField + exHTML
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,1) = 5"

	' var_Items.CellEditorVisible(h,1) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellEditorVisible(h,1) = False"

	' var_Items.FormatCell(h,1) = "'Total: <b><font ;11>' + currency(value)"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,1) = `'Total: <b><font ;11>' + currency(value)`"

	' var_Items.CellHAlignment(h,1) = 1
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHAlignment(h,1) = 1"

	' var_Items.ItemDivider(h) = 1
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemDivider(h) = 1"

	' var_Items.ItemDividerLineAlignment(h) = 1
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemDividerLineAlignment(h) = 1"

	' var_Items.ItemDividerLine(h) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemDividerLine(h) = 2"

	' var_Items.SortableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SortableItem(h) = False"

	' var_Items.SelectableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SelectableItem(h) = False"

oGrid.EndUpdate()

659
Is it possible to have a total field for each column

' Occurs when the user changes the cell's content.
function Change as v (Item  as  OLE::Exontrol.Grid.1::HITEM,ColIndex  as  N,NewValue  as  A)
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	oGrid.Refresh()
end function

Dim h as N
Dim oGrid as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Editor as P
Dim var_Editor1 as P
Dim var_Items as P
Dim var_Items1 as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
var_Column = oGrid.Columns.Add("C1")
	var_Editor = var_Column.Editor
		var_Editor.Numeric = -1
		var_Editor.EditType = 4
	var_Column.SortType = 1
var_Column1 = oGrid.Columns.Add("C2")
	var_Editor1 = var_Column1.Editor
		var_Editor1.Numeric = -1
		var_Editor1.EditType = 4
	var_Column1.SortType = 1
var_Items = oGrid.Items
	' var_Items.LockedItemCount(2) = 1
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.LockedItemCount(2) = 1"

	h = var_Items.LockedItem(2,0)
	' var_Items.ItemBackColor(h) = 15790320
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemBackColor(h) = 15790320"

	' var_Items.ItemBold(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemBold(h) = True"

	' var_Items.CellValue(h,0) = "sum(all,dir,dbl(%0))"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,0) = `sum(all,dir,dbl(%0))`"

	' var_Items.CellValueFormat(h,0) = 4
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,0) = 4"

	' var_Items.CellValue(h,1) = "sum(all,dir,dbl(%1))"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = `sum(all,dir,dbl(%1))`"

	' var_Items.CellValueFormat(h,1) = 4
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,1) = 4"

var_Items1 = oGrid.Items
	' var_Items1.CellValue(var_Items1.AddItem(10),1) = 12
	oGrid.TemplateDef = "dim var_Items1"
	oGrid.TemplateDef = var_Items1
	oGrid.Template = "var_Items1.CellValue(AddItem(10),1) = 12"

	' var_Items1.CellValue(var_Items1.AddItem(25),1) = 5
	oGrid.TemplateDef = "dim var_Items1"
	oGrid.TemplateDef = var_Items1
	oGrid.Template = "var_Items1.CellValue(AddItem(25),1) = 5"

	' var_Items1.CellValue(var_Items1.AddItem(31),1) = 17
	oGrid.TemplateDef = "dim var_Items1"
	oGrid.TemplateDef = var_Items1
	oGrid.Template = "var_Items1.CellValue(AddItem(31),1) = 17"

	' var_Items1.CellValue(var_Items1.AddItem(48),1) = 22
	oGrid.TemplateDef = "dim var_Items1"
	oGrid.TemplateDef = var_Items1
	oGrid.Template = "var_Items1.CellValue(AddItem(48),1) = 22"

oGrid.EndUpdate()

658
How can I add a total field for a DataSource being used

' Occurs when the user changes the cell's content.
function Change as v (Item  as  OLE::Exontrol.Grid.1::HITEM,ColIndex  as  N,NewValue  as  A)
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	oGrid.Refresh()
end function

Dim h as N
Dim oGrid as P
Dim rs as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.ColumnAutoResize = .f.
oGrid.ContinueColumnScroll = .f.
rs = OLE.Create("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
var_Items = oGrid.Items
	' var_Items.LockedItemCount(0) = 1
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.LockedItemCount(0) = 1"

	h = var_Items.LockedItem(0,0)
	' var_Items.ItemDivider(h) = 0
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemDivider(h) = 0"

	' var_Items.CellValueFormat(h,0) = 5 'exTotalField + exHTML
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,0) = 5"

	' var_Items.CellValue(h,0) = "sum(all,dir,%1)"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,0) = `sum(all,dir,%1)`"


657
How can I add a total field

' Occurs when the user changes the cell's content.
function Change as v (Item  as  OLE::Exontrol.Grid.1::HITEM,ColIndex  as  N,NewValue  as  A)
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	oGrid.Refresh()
end function

Dim h as N
Dim oGrid as P
Dim var_Column as P
Dim var_Editor as P
Dim var_Items as P
Dim var_Items1 as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
var_Column = oGrid.Columns.Add("Numbers")
	var_Editor = var_Column.Editor
		var_Editor.Numeric = -1
		var_Editor.EditType = 4
	var_Column.SortType = 1
var_Items = oGrid.Items
	' var_Items.LockedItemCount(0) = 1
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.LockedItemCount(0) = 1"

	h = var_Items.LockedItem(0,0)
	' var_Items.ItemBackColor(h) = 15790320
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemBackColor(h) = 15790320"

	' var_Items.CellValue(h,0) = "sum(all,dir,dbl(%0))"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,0) = `sum(all,dir,dbl(%0))`"

	' var_Items.CellValueFormat(h,0) = 4
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,0) = 4"

	' var_Items.CellHAlignment(h,0) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHAlignment(h,0) = 2"

	' var_Items.FormatCell(h,0) = "'Total: '+value"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,0) = `'Total: '+value`"

var_Items1 = oGrid.Items
	var_Items1.AddItem(10)
	var_Items1.AddItem(25)
	var_Items1.AddItem(31)
	var_Items1.AddItem(48)
oGrid.EndUpdate()

656
How can I add a total field

' Occurs when the user changes the cell's content.
function Change as v (Item  as  OLE::Exontrol.Grid.1::HITEM,ColIndex  as  N,NewValue  as  A)
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	oGrid.Refresh()
end function

Dim h as N
Dim hT as N
Dim oGrid as P
Dim var_Editor as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
var_Editor = oGrid.Columns.Add("Items").Editor
	var_Editor.EditType = 4
	var_Editor.Numeric = .t.
var_Items = oGrid.Items
	h = var_Items.AddItem("Group 1")
	' var_Items.CellEditorVisible(h,0) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellEditorVisible(h,0) = False"

	var_Items.InsertItem(h,,10)
	var_Items.InsertItem(h,,20)
	var_Items.InsertItem(h,,30)
	hT = var_Items.InsertItem(h,,"sum(parent,dir,dbl(%0))")
	' var_Items.CellEditorVisible(hT,0) = .f.
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.CellEditorVisible(hT,0) = False"

	' var_Items.CellValueFormat(hT,0) = 5 'exTotalField + exHTML
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.CellValueFormat(hT,0) = 5"

	' var_Items.ItemDivider(hT) = 0
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.ItemDivider(hT) = 0"

	' var_Items.ItemDividerLineAlignment(hT) = 2
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.ItemDividerLineAlignment(hT) = 2"

	' var_Items.SelectableItem(hT) = .f.
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.SelectableItem(hT) = False"

	' var_Items.SortableItem(hT) = .f.
	oGrid.TemplateDef = "dim var_Items,hT"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = hT
	oGrid.Template = "var_Items.SortableItem(hT) = False"

	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

oGrid.EndUpdate()

655
Is it possible to specify the cell's value but still want to display some formatted text instead the value

Dim h as N
Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.Columns.Add("Value")
oGrid.Columns.Add("FormatCell")
var_Items = oGrid.Items
	h = var_Items.AddItem(1)
	' var_Items.CellValue(h,1) = 12
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = 12"

	' var_Items.FormatCell(h,1) = "currency(value)"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,1) = `currency(value)`"

	h = var_Items.AddItem({01/01/2001})
	' var_Items.CellValue(h,1) = {01/01/2001}
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = #1/1/2001#"

	' var_Items.CellValueFormat(h,1) = 1
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,1) = 1"

	' var_Items.FormatCell(h,1) = "longdate(value) replace '2001' with '<b>2001</b>'"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,1) = `longdate(value) replace '2001' with '<b>2001</b>'`"

oGrid.EndUpdate()

654
How can I simulate displaying groups

Dim h as N
Dim h1 as N
Dim oGrid as P
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.HasLines = 0
oGrid.ScrollBySingleLine = .t.
var_Columns = oGrid.Columns
	var_Columns.Add("Name")
	var_Columns.Add("A")
	var_Columns.Add("B")
	var_Columns.Add("C")
var_Items = oGrid.Items
	h = var_Items.AddItem("Group 1")
	' var_Items.CellHAlignment(h,0) = 1
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHAlignment(h,0) = 1"

	' var_Items.ItemDivider(h) = 0
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemDivider(h) = 0"

	' var_Items.ItemDividerLineAlignment(h) = 3
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemDividerLineAlignment(h) = 3"

	' var_Items.ItemHeight(h) = 24
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemHeight(h) = 24"

	' var_Items.SortableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SortableItem(h) = False"

	h1 = var_Items.InsertItem(h,,"Child 1")
	' var_Items.CellValue(h1,1) = 1
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,1) = 1"

	' var_Items.CellValue(h1,2) = 2
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,2) = 2"

	' var_Items.CellValue(h1,3) = 3
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,3) = 3"

	h1 = var_Items.InsertItem(h,,"Child 2")
	' var_Items.CellValue(h1,1) = 4
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,1) = 4"

	' var_Items.CellValue(h1,2) = 5
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,2) = 5"

	' var_Items.CellValue(h1,3) = 6
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,3) = 6"

	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("Group 2")
	' var_Items.CellHAlignment(h,0) = 1
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHAlignment(h,0) = 1"

	' var_Items.ItemDivider(h) = 0
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemDivider(h) = 0"

	' var_Items.ItemDividerLineAlignment(h) = 3
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemDividerLineAlignment(h) = 3"

	' var_Items.ItemHeight(h) = 24
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemHeight(h) = 24"

	' var_Items.SortableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SortableItem(h) = False"

	h1 = var_Items.InsertItem(h,,"Child 1")
	' var_Items.CellValue(h1,1) = 1
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,1) = 1"

	' var_Items.CellValue(h1,2) = 2
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,2) = 2"

	' var_Items.CellValue(h1,3) = 3
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,3) = 3"

	h1 = var_Items.InsertItem(h,,"Child 2")
	' var_Items.CellValue(h1,1) = 4
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,1) = 4"

	' var_Items.CellValue(h1,2) = 5
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,2) = 5"

	' var_Items.CellValue(h1,3) = 6
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,3) = 6"

	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"


653
Is it possible to specify the cell's value but still want to display some formatted text instead the value

Dim h as N
Dim oGrid as P
Dim var_Column as P
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.MarkSearchColumn = .f.
var_Columns = oGrid.Columns
	var_Columns.Add("Name")
	var_Column = var_Columns.Add("Values")
		var_Column.SortType = 1
		var_Column.AllowSizing = .f.
		var_Column.Width = 64
		var_Column.FormatColumn = "((0:=dbl(value)) < 10? '<fgcolor=808080><font ;7>' :'<b>') + currency(=:0)"
		' var_Column.Def(17) = 1
		oGrid.TemplateDef = "dim var_Column"
		oGrid.TemplateDef = var_Column
		oGrid.Template = "var_Column.Def(17) = 1"

var_Items = oGrid.Items
	h = var_Items.AddItem("Root")
	' var_Items.FormatCell(h,1) = "'<none>'"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,1) = `'<none>'`"

	' var_Items.CellValue(var_Items.InsertItem(h,,"Child 1"),1) = 10
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(InsertItem(h,,`Child 1`),1) = 10"

	' var_Items.CellValue(var_Items.InsertItem(h,,"Child 2"),1) = 15
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(InsertItem(h,,`Child 2`),1) = 15"

	' var_Items.CellValue(var_Items.InsertItem(h,,"Child 3"),1) = 25
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(InsertItem(h,,`Child 3`),1) = 25"

	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

oGrid.EndUpdate()

652
I am using the FormatColumn to display the current currency, but would like hide some values. Is it possible

Dim h as N
Dim oGrid as P
Dim var_Column as P
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.MarkSearchColumn = .f.
var_Columns = oGrid.Columns
	var_Columns.Add("Name")
	var_Column = var_Columns.Add("Values")
		var_Column.SortType = 1
		var_Column.AllowSizing = .f.
		var_Column.Width = 64
		var_Column.FormatColumn = "((0:=dbl(value)) < 10? '<fgcolor=808080><font ;7>' :'<b>') + currency(=:0)"
		' var_Column.Def(17) = 1
		oGrid.TemplateDef = "dim var_Column"
		oGrid.TemplateDef = var_Column
		oGrid.Template = "var_Column.Def(17) = 1"

var_Items = oGrid.Items
	h = var_Items.AddItem("Root")
	' var_Items.FormatCell(h,1) = " "
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.FormatCell(h,1) = ` `"

	' var_Items.CellValue(var_Items.InsertItem(h,,"Child 1"),1) = 10
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(InsertItem(h,,`Child 1`),1) = 10"

	' var_Items.CellValue(var_Items.InsertItem(h,,"Child 2"),1) = 15
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(InsertItem(h,,`Child 2`),1) = 15"

	' var_Items.CellValue(var_Items.InsertItem(h,,"Child 3"),1) = 25
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(InsertItem(h,,`Child 3`),1) = 25"

	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

oGrid.EndUpdate()

651
How can I specify an item to be always the first item

Dim h as N
Dim oGrid as P
Dim var_Column as local
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.TreeColumnIndex = -1
' oGrid.Columns.Add("Numbers").SortType = 1
var_Column = oGrid.Columns.Add("Numbers")
oGrid.TemplateDef = "dim var_Column"
oGrid.TemplateDef = var_Column
oGrid.Template = "var_Column.SortType = 1"

var_Items = oGrid.Items
	var_Items.AddItem(1)
	var_Items.AddItem(2)
	var_Items.AddItem(3)
	var_Items.AddItem(4)
	h = var_Items.AddItem("first")
	' var_Items.ItemPosition(h) = 0
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemPosition(h) = 0"

	' var_Items.CellHAlignment(h,0) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHAlignment(h,0) = 2"

	' var_Items.SortableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SortableItem(h) = False"

	var_Items.SortChildren(0,0,.f.)
oGrid.EndUpdate()

650
How can I specify an item to be always the last item

Dim h as N
Dim oGrid as P
Dim var_Column as local
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.TreeColumnIndex = -1
' oGrid.Columns.Add("Numbers").SortType = 1
var_Column = oGrid.Columns.Add("Numbers")
oGrid.TemplateDef = "dim var_Column"
oGrid.TemplateDef = var_Column
oGrid.Template = "var_Column.SortType = 1"

var_Items = oGrid.Items
	var_Items.AddItem(1)
	var_Items.AddItem(2)
	var_Items.AddItem(3)
	var_Items.AddItem(4)
	h = var_Items.AddItem("last")
	' var_Items.CellHAlignment(h,0) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHAlignment(h,0) = 2"

	' var_Items.SortableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SortableItem(h) = False"

	var_Items.SortChildren(0,0,.t.)
oGrid.EndUpdate()

649
Can I allow sorting only the child items

Dim h as N
Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.Columns.Add("Childs")
var_Items = oGrid.Items
	h = var_Items.AddItem("Root 1")
	' var_Items.SortableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SortableItem(h) = False"

	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("Root 2")
	' var_Items.SortableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SortableItem(h) = False"

	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

oGrid.EndUpdate()

648
Can I specify a terminal item so it will mark the end of childs

Dim h as N
Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.ScrollBySingleLine = .t.
oGrid.Columns.Add("P1")
var_Items = oGrid.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.InsertItem(h,"","")
	' var_Items.ItemDivider(h) = 0
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemDivider(h) = 0"

	' var_Items.ItemDividerLineAlignment(h) = 1
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemDividerLineAlignment(h) = 1"

	' var_Items.ItemHeight(h) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemHeight(h) = 2"

	' var_Items.SelectableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SelectableItem(h) = False"

	' var_Items.SortableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SortableItem(h) = False"

	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.InsertItem(h,"","")
	' var_Items.ItemDivider(h) = 0
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemDivider(h) = 0"

	' var_Items.ItemDividerLineAlignment(h) = 1
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemDividerLineAlignment(h) = 1"

	' var_Items.ItemHeight(h) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemHeight(h) = 2"

	' var_Items.SelectableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SelectableItem(h) = False"

	' var_Items.SortableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SortableItem(h) = False"

oGrid.EndUpdate()

647
Is it possible to specify an item being unsortable so its position won't be changed after sorting

Dim h as N
Dim oGrid as P
Dim var_Column as local
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.TreeColumnIndex = -1
' oGrid.Columns.Add("Numbers").SortType = 1
var_Column = oGrid.Columns.Add("Numbers")
oGrid.TemplateDef = "dim var_Column"
oGrid.TemplateDef = var_Column
oGrid.Template = "var_Column.SortType = 1"

var_Items = oGrid.Items
	var_Items.AddItem(1)
	var_Items.AddItem(2)
	var_Items.AddItem(3)
	var_Items.AddItem(4)
	h = var_Items.AddItem("top 3")
	' var_Items.ItemPosition(h) = 3
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemPosition(h) = 3"

	' var_Items.CellHAlignment(h,0) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHAlignment(h,0) = 2"

	' var_Items.SortableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SortableItem(h) = False"

	var_Items.SortChildren(0,0,.f.)
oGrid.EndUpdate()

646
Is it possible to move an item from a parent to another

Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
oGrid.Columns.Add("Items")
var_Items = oGrid.Items
	var_Items.AddItem("A")
	var_Items.AddItem("B")
	var_Items.InsertItem(var_Items.AddItem("C"),"","D")
	var_Items.SetParent(var_Items.FindItem("D",0),var_Items.FindItem("A",0))
oGrid.EndUpdate()

645
How can I change the identation for an item

Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
oGrid.Columns.Add("Items")
var_Items = oGrid.Items
	var_Items.AddItem("A")
	var_Items.AddItem("B")
	var_Items.InsertItem(var_Items.AddItem("C"),"","D")
	var_Items.SetParent(var_Items.FindItem("D",0),0)
oGrid.EndUpdate()

644
How can I arrange the control's header on multiple levels

Dim h as N
Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Column2 as local
Dim var_Column3 as local
Dim var_Column4 as P
Dim var_Column5 as P
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.DefaultItemHeight = 48
var_Columns = oGrid.Columns
	' var_Columns.Add("Title").Visible = .f.
	var_Column = var_Columns.Add("Title")
	oGrid.TemplateDef = "dim var_Column"
	oGrid.TemplateDef = var_Column
	oGrid.Template = "var_Column.Visible = False"

	' var_Columns.Add("FirstName").Visible = .f.
	var_Column1 = var_Columns.Add("FirstName")
	oGrid.TemplateDef = "dim var_Column1"
	oGrid.TemplateDef = var_Column1
	oGrid.Template = "var_Column1.Visible = False"

	' var_Columns.Add("LastName").Visible = .f.
	var_Column2 = var_Columns.Add("LastName")
	oGrid.TemplateDef = "dim var_Column2"
	oGrid.TemplateDef = var_Column2
	oGrid.Template = "var_Column2.Visible = False"

	' var_Columns.Add("Photo").Visible = .f.
	var_Column3 = var_Columns.Add("Photo")
	oGrid.TemplateDef = "dim var_Column3"
	oGrid.TemplateDef = var_Column3
	oGrid.Template = "var_Column3.Visible = False"

	var_Column4 = var_Columns.Add("Address")
		var_Column4.Visible = .f.
		' var_Column4.Def(16) = .f.
		oGrid.TemplateDef = "dim var_Column4"
		oGrid.TemplateDef = var_Column4
		oGrid.Template = "var_Column4.Def(16) = False"

	var_Column5 = var_Columns.Add("Personal Info")
		var_Column5.FormatLevel = "3:48,(0/1/2),4:96"
		' var_Column5.Def(32) = "3:48,(0/1/2),4:96"
		oGrid.TemplateDef = "dim var_Column5"
		oGrid.TemplateDef = var_Column5
		oGrid.Template = "var_Column5.Def(32) = `3:48,(0/1/2),4:96`"

var_Items = oGrid.Items
	h = var_Items.AddItem("Sales Representative")
	' var_Items.CellValue(h,1) = "Nancy"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = `Nancy`"

	' var_Items.CellValue(h,2) = "Davolio"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,2) = `Davolio`"

	' var_Items.CellPicture(h,3) = oGrid.ExecuteTemplate("loadpicture(`c:\exontrol\images\zipdisk.gif`)")
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellPicture(h,3) = Me.ExecuteTemplate(`loadpicture(``c:\exontrol\images\zipdisk.gif``)`)"

	' var_Items.CellValue(h,4) = "507-20th Ave. E.Apt.  2A"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,4) = `507-20th Ave. E.Apt.  2A`"

oGrid.EndUpdate()

643
How can I filter programatically using more columns

Dim oGrid as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
var_Columns = oGrid.Columns
	var_Columns.Add("Car")
	var_Columns.Add("Equipment")
var_Items = oGrid.Items
	' var_Items.CellValue(var_Items.AddItem("Mazda"),1) = "Air Bag"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(`Mazda`),1) = `Air Bag`"

	' var_Items.CellValue(var_Items.AddItem("Toyota"),1) = "Air Bag,Air condition"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(`Toyota`),1) = `Air Bag,Air condition`"

	' var_Items.CellValue(var_Items.AddItem("Ford"),1) = "Air condition"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(`Ford`),1) = `Air condition`"

	' var_Items.CellValue(var_Items.AddItem("Nissan"),1) = "Air Bag,ABS,ESP"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(`Nissan`),1) = `Air Bag,ABS,ESP`"

	' var_Items.CellValue(var_Items.AddItem("Mazda"),1) = "Air Bag, ABS,ESP"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(`Mazda`),1) = `Air Bag, ABS,ESP`"

	' var_Items.CellValue(var_Items.AddItem("Mazda"),1) = "ABS,ESP"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(`Mazda`),1) = `ABS,ESP`"

var_Column = oGrid.Columns.Item("Car")
	var_Column.FilterType = 240
	var_Column.Filter = "Mazda"
var_Column1 = oGrid.Columns.Item("Equipment")
	var_Column1.FilterType = 3
	var_Column1.Filter = "*ABS*|*ESP*"
oGrid.ApplyFilter()
oGrid.EndUpdate()

642
How can I show the ticks for a single slider field

Dim oGrid as P
Dim var_Editor as local
Dim var_Editor1 as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
' oGrid.Columns.Add("Slider").Editor.EditType = 20
var_Editor = oGrid.Columns.Add("Slider").Editor
oGrid.TemplateDef = "dim var_Editor"
oGrid.TemplateDef = var_Editor
oGrid.Template = "var_Editor.EditType = 20"

var_Items = oGrid.Items
	var_Items.AddItem(10)
	var_Editor1 = var_Items.CellEditor(var_Items.AddItem(20),0)
		var_Editor1.EditType = 20
		' var_Editor1.Option(53) = 10
		oGrid.TemplateDef = "dim var_Editor1"
		oGrid.TemplateDef = var_Editor1
		oGrid.Template = "var_Editor1.Option(53) = 10"

	var_Items.AddItem(30)
oGrid.EndUpdate()

641
Is it possible to show ticks for slider fields

Dim oGrid as P
Dim var_Editor as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
var_Editor = oGrid.Columns.Add("Slider").Editor
	var_Editor.EditType = 20
	' var_Editor.Option(53) = 10
	oGrid.TemplateDef = "dim var_Editor"
	oGrid.TemplateDef = var_Editor
	oGrid.Template = "var_Editor.Option(53) = 10"

oGrid.Items.AddItem(10)

640
Is it possible to colour a particular column, I mean the cell's foreground color

Dim oGrid as P
Dim var_Columns as P
Dim var_ConditionalFormat as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
var_ConditionalFormat = oGrid.ConditionalFormats.Add("1")
	var_ConditionalFormat.ForeColor = 255
	var_ConditionalFormat.ApplyTo = 1 '1 + 
oGrid.MarkSearchColumn = .f.
var_Columns = oGrid.Columns
	var_Columns.Add("Column 1")
	var_Columns.Add("Column 2")
var_Items = oGrid.Items
	' var_Items.CellValue(var_Items.AddItem(0),1) = 1
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(0),1) = 1"

	' var_Items.CellValue(var_Items.AddItem(2),1) = 3
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(2),1) = 3"

	' var_Items.CellValue(var_Items.AddItem(4),1) = 5
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(4),1) = 5"

oGrid.EndUpdate()

639
Is it possible to colour a particular column for specified values

Dim oGrid as P
Dim var_Columns as P
Dim var_ConditionalFormat as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
var_ConditionalFormat = oGrid.ConditionalFormats.Add("int(%1) in (3,4,5)")
	var_ConditionalFormat.BackColor = 255
	var_ConditionalFormat.ApplyTo = 1 '1 + 
oGrid.MarkSearchColumn = .f.
var_Columns = oGrid.Columns
	var_Columns.Add("Column 1")
	var_Columns.Add("Column 2")
var_Items = oGrid.Items
	' var_Items.CellValue(var_Items.AddItem(0),1) = 1
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(0),1) = 1"

	' var_Items.CellValue(var_Items.AddItem(2),1) = 3
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(2),1) = 3"

	' var_Items.CellValue(var_Items.AddItem(4),1) = 5
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(4),1) = 5"

oGrid.EndUpdate()

638
Is it possible to colour a particular column

Dim oGrid as P
Dim var_Column as local
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.MarkSearchColumn = .f.
var_Columns = oGrid.Columns
	var_Columns.Add("Column 1")
	' var_Columns.Add("Column 2").Def(4) = 255
	var_Column = var_Columns.Add("Column 2")
	oGrid.TemplateDef = "dim var_Column"
	oGrid.TemplateDef = var_Column
	oGrid.Template = "var_Column.Def(4) = 255"

var_Items = oGrid.Items
	' var_Items.CellValue(var_Items.AddItem(0),1) = 1
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(0),1) = 1"

	' var_Items.CellValue(var_Items.AddItem(2),1) = 3
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(2),1) = 3"

	' var_Items.CellValue(var_Items.AddItem(4),1) = 5
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(4),1) = 5"

oGrid.EndUpdate()

637
How do i get all the children items that are under a certain parent Item handle
Dim h as N
Dim hChild as N
Dim oGrid as P
Dim var_Items as P
Dim var_Items1 as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
oGrid.Columns.Add("P")
var_Items = oGrid.Items
	h = var_Items.AddItem("Root")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

var_Items1 = oGrid.Items
	hChild = var_Items1.ItemChild(var_Items1.FirstVisibleItem)
	? var_Items1.CellValue(hChild,0) 
	? var_Items1.CellValue(var_Items1.NextSiblingItem(hChild),0) 
oGrid.EndUpdate()

636
Is is possible to use HTML tags to display in the filter caption

Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.FilterBarPromptVisible = 1
oGrid.FilterBarCaption = "This is a bit of text being displayed in the filter bar."
oGrid.Columns.Add("")
var_Items = oGrid.Items
	var_Items.AddItem("Item 1")
	var_Items.AddItem("Item 2")
	var_Items.AddItem("Item 3")
oGrid.EndUpdate()

635
How can I find the number of items after filtering
Dim h as N
Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.Columns.Add("")
var_Items = oGrid.Items
	h = var_Items.AddItem("")
	' var_Items.CellValue(h,0) = var_Items.VisibleItemCount
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,0) = VisibleItemCount"

oGrid.EndUpdate()

634
How can I change the filter caption

Dim h0 as N
Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = .t.
oGrid.ContinueColumnScroll = .f.
oGrid.FocusColumnIndex = 1
oGrid.MarkSearchColumn = .f.
oGrid.SearchColumnIndex = 1
oGrid.FilterBarPromptVisible = 1
oGrid.FilterBarPromptType = 12801 'exFilterPromptWords + exFilterPromptContainsAll
oGrid.FilterBarPromptPattern = "london robert"
oGrid.FilterBarCaption = "<r>Found: ... "
var_Columns = oGrid.Columns
	' var_Columns.Add("Name").Width = 96
	var_Column = var_Columns.Add("Name")
	oGrid.TemplateDef = "dim var_Column"
	oGrid.TemplateDef = var_Column
	oGrid.Template = "var_Column.Width = 96"

	' var_Columns.Add("Title").Width = 96
	var_Column1 = var_Columns.Add("Title")
	oGrid.TemplateDef = "dim var_Column1"
	oGrid.TemplateDef = var_Column1
	oGrid.Template = "var_Column1.Width = 96"

	var_Columns.Add("City")
var_Items = oGrid.Items
	h0 = var_Items.AddItem("Nancy Davolio")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Andrew Fuller")
	' var_Items.CellValue(h0,1) = "Vice President, Sales"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Vice President, Sales`"

	' var_Items.CellValue(h0,2) = "Tacoma"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Tacoma`"

	' var_Items.SelectItem(h0) = .t.
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.SelectItem(h0) = True"

	h0 = var_Items.AddItem("Janet Leverling")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Kirkland"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Kirkland`"

	h0 = var_Items.AddItem("Margaret Peacock")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Redmond"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Redmond`"

	h0 = var_Items.AddItem("Steven Buchanan")
	' var_Items.CellValue(h0,1) = "Sales Manager"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Manager`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Michael Suyama")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Robert King")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Laura Callahan")
	' var_Items.CellValue(h0,1) = "Inside Sales Coordinator"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Inside Sales Coordinator`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Anne Dodsworth")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

oGrid.EndUpdate()

633
While using the filter prompt is it is possible to use wild characters

Dim h0 as N
Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = .t.
oGrid.ContinueColumnScroll = .f.
oGrid.FocusColumnIndex = 1
oGrid.MarkSearchColumn = .f.
oGrid.SearchColumnIndex = 1
oGrid.FilterBarPromptVisible = 1
oGrid.FilterBarPromptType = 16
oGrid.FilterBarPromptPattern = "lon* seat*"
var_Columns = oGrid.Columns
	' var_Columns.Add("Name").Width = 96
	var_Column = var_Columns.Add("Name")
	oGrid.TemplateDef = "dim var_Column"
	oGrid.TemplateDef = var_Column
	oGrid.Template = "var_Column.Width = 96"

	' var_Columns.Add("Title").Width = 96
	var_Column1 = var_Columns.Add("Title")
	oGrid.TemplateDef = "dim var_Column1"
	oGrid.TemplateDef = var_Column1
	oGrid.Template = "var_Column1.Width = 96"

	var_Columns.Add("City")
var_Items = oGrid.Items
	h0 = var_Items.AddItem("Nancy Davolio")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Andrew Fuller")
	' var_Items.CellValue(h0,1) = "Vice President, Sales"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Vice President, Sales`"

	' var_Items.CellValue(h0,2) = "Tacoma"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Tacoma`"

	' var_Items.SelectItem(h0) = .t.
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.SelectItem(h0) = True"

	h0 = var_Items.AddItem("Janet Leverling")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Kirkland"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Kirkland`"

	h0 = var_Items.AddItem("Margaret Peacock")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Redmond"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Redmond`"

	h0 = var_Items.AddItem("Steven Buchanan")
	' var_Items.CellValue(h0,1) = "Sales Manager"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Manager`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Michael Suyama")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Robert King")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Laura Callahan")
	' var_Items.CellValue(h0,1) = "Inside Sales Coordinator"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Inside Sales Coordinator`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Anne Dodsworth")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

oGrid.EndUpdate()

632
How can I list all items that contains any of specified words, not necessary at the beggining

Dim h0 as N
Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = .t.
oGrid.ContinueColumnScroll = .f.
oGrid.FocusColumnIndex = 1
oGrid.MarkSearchColumn = .f.
oGrid.SearchColumnIndex = 1
oGrid.FilterBarPromptVisible = 1
oGrid.FilterBarPromptType = 4610 'exFilterPromptStartWords + exFilterPromptContainsAny
oGrid.FilterBarPromptPattern = "london davolio"
var_Columns = oGrid.Columns
	' var_Columns.Add("Name").Width = 96
	var_Column = var_Columns.Add("Name")
	oGrid.TemplateDef = "dim var_Column"
	oGrid.TemplateDef = var_Column
	oGrid.Template = "var_Column.Width = 96"

	' var_Columns.Add("Title").Width = 96
	var_Column1 = var_Columns.Add("Title")
	oGrid.TemplateDef = "dim var_Column1"
	oGrid.TemplateDef = var_Column1
	oGrid.Template = "var_Column1.Width = 96"

	var_Columns.Add("City")
var_Items = oGrid.Items
	h0 = var_Items.AddItem("Nancy Davolio")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Andrew Fuller")
	' var_Items.CellValue(h0,1) = "Vice President, Sales"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Vice President, Sales`"

	' var_Items.CellValue(h0,2) = "Tacoma"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Tacoma`"

	' var_Items.SelectItem(h0) = .t.
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.SelectItem(h0) = True"

	h0 = var_Items.AddItem("Janet Leverling")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Kirkland"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Kirkland`"

	h0 = var_Items.AddItem("Margaret Peacock")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Redmond"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Redmond`"

	h0 = var_Items.AddItem("Steven Buchanan")
	' var_Items.CellValue(h0,1) = "Sales Manager"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Manager`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Michael Suyama")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Robert King")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Laura Callahan")
	' var_Items.CellValue(h0,1) = "Inside Sales Coordinator"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Inside Sales Coordinator`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Anne Dodsworth")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

oGrid.EndUpdate()

631
How can I list all items that contains any of specified words, not strings

Dim h0 as N
Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = .t.
oGrid.ContinueColumnScroll = .f.
oGrid.FocusColumnIndex = 1
oGrid.MarkSearchColumn = .f.
oGrid.SearchColumnIndex = 1
oGrid.FilterBarPromptVisible = 1
oGrid.FilterBarPromptType = 12802 'exFilterPromptWords + exFilterPromptContainsAny
oGrid.FilterBarPromptPattern = "london nancy"
var_Columns = oGrid.Columns
	' var_Columns.Add("Name").Width = 96
	var_Column = var_Columns.Add("Name")
	oGrid.TemplateDef = "dim var_Column"
	oGrid.TemplateDef = var_Column
	oGrid.Template = "var_Column.Width = 96"

	' var_Columns.Add("Title").Width = 96
	var_Column1 = var_Columns.Add("Title")
	oGrid.TemplateDef = "dim var_Column1"
	oGrid.TemplateDef = var_Column1
	oGrid.Template = "var_Column1.Width = 96"

	var_Columns.Add("City")
var_Items = oGrid.Items
	h0 = var_Items.AddItem("Nancy Davolio")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Andrew Fuller")
	' var_Items.CellValue(h0,1) = "Vice President, Sales"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Vice President, Sales`"

	' var_Items.CellValue(h0,2) = "Tacoma"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Tacoma`"

	' var_Items.SelectItem(h0) = .t.
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.SelectItem(h0) = True"

	h0 = var_Items.AddItem("Janet Leverling")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Kirkland"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Kirkland`"

	h0 = var_Items.AddItem("Margaret Peacock")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Redmond"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Redmond`"

	h0 = var_Items.AddItem("Steven Buchanan")
	' var_Items.CellValue(h0,1) = "Sales Manager"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Manager`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Michael Suyama")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Robert King")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Laura Callahan")
	' var_Items.CellValue(h0,1) = "Inside Sales Coordinator"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Inside Sales Coordinator`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Anne Dodsworth")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

oGrid.EndUpdate()

630
How can I list all items that contains all specified words, not strings

Dim h0 as N
Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = .t.
oGrid.ContinueColumnScroll = .f.
oGrid.FocusColumnIndex = 1
oGrid.MarkSearchColumn = .f.
oGrid.SearchColumnIndex = 1
oGrid.FilterBarPromptVisible = 1
oGrid.FilterBarPromptType = 12801 'exFilterPromptWords + exFilterPromptContainsAll
oGrid.FilterBarPromptPattern = "london robert"
var_Columns = oGrid.Columns
	' var_Columns.Add("Name").Width = 96
	var_Column = var_Columns.Add("Name")
	oGrid.TemplateDef = "dim var_Column"
	oGrid.TemplateDef = var_Column
	oGrid.Template = "var_Column.Width = 96"

	' var_Columns.Add("Title").Width = 96
	var_Column1 = var_Columns.Add("Title")
	oGrid.TemplateDef = "dim var_Column1"
	oGrid.TemplateDef = var_Column1
	oGrid.Template = "var_Column1.Width = 96"

	var_Columns.Add("City")
var_Items = oGrid.Items
	h0 = var_Items.AddItem("Nancy Davolio")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Andrew Fuller")
	' var_Items.CellValue(h0,1) = "Vice President, Sales"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Vice President, Sales`"

	' var_Items.CellValue(h0,2) = "Tacoma"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Tacoma`"

	' var_Items.SelectItem(h0) = .t.
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.SelectItem(h0) = True"

	h0 = var_Items.AddItem("Janet Leverling")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Kirkland"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Kirkland`"

	h0 = var_Items.AddItem("Margaret Peacock")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Redmond"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Redmond`"

	h0 = var_Items.AddItem("Steven Buchanan")
	' var_Items.CellValue(h0,1) = "Sales Manager"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Manager`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Michael Suyama")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Robert King")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Laura Callahan")
	' var_Items.CellValue(h0,1) = "Inside Sales Coordinator"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Inside Sales Coordinator`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Anne Dodsworth")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

oGrid.EndUpdate()

629
I've noticed that the filtering by prompt is not case sensitive, is is possible to make it case sensitive

Dim h0 as N
Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = .t.
oGrid.ContinueColumnScroll = .f.
oGrid.FocusColumnIndex = 1
oGrid.MarkSearchColumn = .f.
oGrid.SearchColumnIndex = 1
oGrid.FilterBarPromptVisible = 1
oGrid.FilterBarPromptType = 258 'exFilterPromptCaseSensitive + exFilterPromptContainsAny
oGrid.FilterBarPromptPattern = "Anne"
var_Columns = oGrid.Columns
	' var_Columns.Add("Name").Width = 96
	var_Column = var_Columns.Add("Name")
	oGrid.TemplateDef = "dim var_Column"
	oGrid.TemplateDef = var_Column
	oGrid.Template = "var_Column.Width = 96"

	' var_Columns.Add("Title").Width = 96
	var_Column1 = var_Columns.Add("Title")
	oGrid.TemplateDef = "dim var_Column1"
	oGrid.TemplateDef = var_Column1
	oGrid.Template = "var_Column1.Width = 96"

	var_Columns.Add("City")
var_Items = oGrid.Items
	h0 = var_Items.AddItem("Nancy Davolio")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Andrew Fuller")
	' var_Items.CellValue(h0,1) = "Vice President, Sales"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Vice President, Sales`"

	' var_Items.CellValue(h0,2) = "Tacoma"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Tacoma`"

	' var_Items.SelectItem(h0) = .t.
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.SelectItem(h0) = True"

	h0 = var_Items.AddItem("Janet Leverling")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Kirkland"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Kirkland`"

	h0 = var_Items.AddItem("Margaret Peacock")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Redmond"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Redmond`"

	h0 = var_Items.AddItem("Steven Buchanan")
	' var_Items.CellValue(h0,1) = "Sales Manager"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Manager`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Michael Suyama")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Robert King")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Laura Callahan")
	' var_Items.CellValue(h0,1) = "Inside Sales Coordinator"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Inside Sales Coordinator`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Anne Dodsworth")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

oGrid.EndUpdate()

628
Is it possible to list only items that ends with any of specified strings

Dim h0 as N
Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = .t.
oGrid.ContinueColumnScroll = .f.
oGrid.FocusColumnIndex = 1
oGrid.MarkSearchColumn = .f.
oGrid.SearchColumnIndex = 1
oGrid.FilterBarPromptVisible = 1
oGrid.FilterBarPromptType = 4
oGrid.FilterBarPromptColumns = "0"
oGrid.FilterBarPromptPattern = "Fuller"
var_Columns = oGrid.Columns
	' var_Columns.Add("Name").Width = 96
	var_Column = var_Columns.Add("Name")
	oGrid.TemplateDef = "dim var_Column"
	oGrid.TemplateDef = var_Column
	oGrid.Template = "var_Column.Width = 96"

	' var_Columns.Add("Title").Width = 96
	var_Column1 = var_Columns.Add("Title")
	oGrid.TemplateDef = "dim var_Column1"
	oGrid.TemplateDef = var_Column1
	oGrid.Template = "var_Column1.Width = 96"

	var_Columns.Add("City")
var_Items = oGrid.Items
	h0 = var_Items.AddItem("Nancy Davolio")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Andrew Fuller")
	' var_Items.CellValue(h0,1) = "Vice President, Sales"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Vice President, Sales`"

	' var_Items.CellValue(h0,2) = "Tacoma"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Tacoma`"

	' var_Items.SelectItem(h0) = .t.
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.SelectItem(h0) = True"

	h0 = var_Items.AddItem("Janet Leverling")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Kirkland"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Kirkland`"

	h0 = var_Items.AddItem("Margaret Peacock")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Redmond"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Redmond`"

	h0 = var_Items.AddItem("Steven Buchanan")
	' var_Items.CellValue(h0,1) = "Sales Manager"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Manager`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Michael Suyama")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Robert King")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Laura Callahan")
	' var_Items.CellValue(h0,1) = "Inside Sales Coordinator"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Inside Sales Coordinator`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Anne Dodsworth")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

oGrid.EndUpdate()

627
Is it possible to list only items that ends with any of specified strings

Dim h0 as N
Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = .t.
oGrid.ContinueColumnScroll = .f.
oGrid.FocusColumnIndex = 1
oGrid.MarkSearchColumn = .f.
oGrid.SearchColumnIndex = 1
oGrid.FilterBarPromptVisible = 1
oGrid.FilterBarPromptType = 4
oGrid.FilterBarPromptColumns = "0"
oGrid.FilterBarPromptPattern = "Fuller"
var_Columns = oGrid.Columns
	' var_Columns.Add("Name").Width = 96
	var_Column = var_Columns.Add("Name")
	oGrid.TemplateDef = "dim var_Column"
	oGrid.TemplateDef = var_Column
	oGrid.Template = "var_Column.Width = 96"

	' var_Columns.Add("Title").Width = 96
	var_Column1 = var_Columns.Add("Title")
	oGrid.TemplateDef = "dim var_Column1"
	oGrid.TemplateDef = var_Column1
	oGrid.Template = "var_Column1.Width = 96"

	var_Columns.Add("City")
var_Items = oGrid.Items
	h0 = var_Items.AddItem("Nancy Davolio")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Andrew Fuller")
	' var_Items.CellValue(h0,1) = "Vice President, Sales"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Vice President, Sales`"

	' var_Items.CellValue(h0,2) = "Tacoma"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Tacoma`"

	' var_Items.SelectItem(h0) = .t.
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.SelectItem(h0) = True"

	h0 = var_Items.AddItem("Janet Leverling")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Kirkland"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Kirkland`"

	h0 = var_Items.AddItem("Margaret Peacock")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Redmond"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Redmond`"

	h0 = var_Items.AddItem("Steven Buchanan")
	' var_Items.CellValue(h0,1) = "Sales Manager"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Manager`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Michael Suyama")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Robert King")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Laura Callahan")
	' var_Items.CellValue(h0,1) = "Inside Sales Coordinator"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Inside Sales Coordinator`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Anne Dodsworth")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

oGrid.EndUpdate()

626
Is it possible to list only items that starts with any of specified strings

Dim h0 as N
Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = .t.
oGrid.ContinueColumnScroll = .f.
oGrid.FocusColumnIndex = 1
oGrid.MarkSearchColumn = .f.
oGrid.SearchColumnIndex = 1
oGrid.FilterBarPromptVisible = 1
oGrid.FilterBarPromptType = 3
oGrid.FilterBarPromptColumns = "0"
oGrid.FilterBarPromptPattern = "An M"
var_Columns = oGrid.Columns
	' var_Columns.Add("Name").Width = 96
	var_Column = var_Columns.Add("Name")
	oGrid.TemplateDef = "dim var_Column"
	oGrid.TemplateDef = var_Column
	oGrid.Template = "var_Column.Width = 96"

	' var_Columns.Add("Title").Width = 96
	var_Column1 = var_Columns.Add("Title")
	oGrid.TemplateDef = "dim var_Column1"
	oGrid.TemplateDef = var_Column1
	oGrid.Template = "var_Column1.Width = 96"

	var_Columns.Add("City")
var_Items = oGrid.Items
	h0 = var_Items.AddItem("Nancy Davolio")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Andrew Fuller")
	' var_Items.CellValue(h0,1) = "Vice President, Sales"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Vice President, Sales`"

	' var_Items.CellValue(h0,2) = "Tacoma"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Tacoma`"

	' var_Items.SelectItem(h0) = .t.
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.SelectItem(h0) = True"

	h0 = var_Items.AddItem("Janet Leverling")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Kirkland"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Kirkland`"

	h0 = var_Items.AddItem("Margaret Peacock")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Redmond"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Redmond`"

	h0 = var_Items.AddItem("Steven Buchanan")
	' var_Items.CellValue(h0,1) = "Sales Manager"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Manager`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Michael Suyama")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Robert King")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Laura Callahan")
	' var_Items.CellValue(h0,1) = "Inside Sales Coordinator"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Inside Sales Coordinator`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Anne Dodsworth")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

oGrid.EndUpdate()

625
Is it possible to list only items that starts with specified string

Dim h0 as N
Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = .t.
oGrid.ContinueColumnScroll = .f.
oGrid.FocusColumnIndex = 1
oGrid.MarkSearchColumn = .f.
oGrid.SearchColumnIndex = 1
oGrid.FilterBarPromptVisible = 1
oGrid.FilterBarPromptType = 3
oGrid.FilterBarPromptColumns = "0"
oGrid.FilterBarPromptPattern = "A"
var_Columns = oGrid.Columns
	' var_Columns.Add("Name").Width = 96
	var_Column = var_Columns.Add("Name")
	oGrid.TemplateDef = "dim var_Column"
	oGrid.TemplateDef = var_Column
	oGrid.Template = "var_Column.Width = 96"

	' var_Columns.Add("Title").Width = 96
	var_Column1 = var_Columns.Add("Title")
	oGrid.TemplateDef = "dim var_Column1"
	oGrid.TemplateDef = var_Column1
	oGrid.Template = "var_Column1.Width = 96"

	var_Columns.Add("City")
var_Items = oGrid.Items
	h0 = var_Items.AddItem("Nancy Davolio")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Andrew Fuller")
	' var_Items.CellValue(h0,1) = "Vice President, Sales"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Vice President, Sales`"

	' var_Items.CellValue(h0,2) = "Tacoma"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Tacoma`"

	' var_Items.SelectItem(h0) = .t.
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.SelectItem(h0) = True"

	h0 = var_Items.AddItem("Janet Leverling")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Kirkland"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Kirkland`"

	h0 = var_Items.AddItem("Margaret Peacock")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Redmond"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Redmond`"

	h0 = var_Items.AddItem("Steven Buchanan")
	' var_Items.CellValue(h0,1) = "Sales Manager"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Manager`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Michael Suyama")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Robert King")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Laura Callahan")
	' var_Items.CellValue(h0,1) = "Inside Sales Coordinator"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Inside Sales Coordinator`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Anne Dodsworth")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

oGrid.EndUpdate()

624
How can I specify that the list should include any of the seqeunces in the pattern

Dim h0 as N
Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = .t.
oGrid.ContinueColumnScroll = .f.
oGrid.FocusColumnIndex = 1
oGrid.MarkSearchColumn = .f.
oGrid.SearchColumnIndex = 1
oGrid.FilterBarPromptVisible = 1
oGrid.FilterBarPromptType = 2
oGrid.FilterBarPromptPattern = "london seattle"
var_Columns = oGrid.Columns
	' var_Columns.Add("Name").Width = 96
	var_Column = var_Columns.Add("Name")
	oGrid.TemplateDef = "dim var_Column"
	oGrid.TemplateDef = var_Column
	oGrid.Template = "var_Column.Width = 96"

	' var_Columns.Add("Title").Width = 96
	var_Column1 = var_Columns.Add("Title")
	oGrid.TemplateDef = "dim var_Column1"
	oGrid.TemplateDef = var_Column1
	oGrid.Template = "var_Column1.Width = 96"

	var_Columns.Add("City")
var_Items = oGrid.Items
	h0 = var_Items.AddItem("Nancy Davolio")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Andrew Fuller")
	' var_Items.CellValue(h0,1) = "Vice President, Sales"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Vice President, Sales`"

	' var_Items.CellValue(h0,2) = "Tacoma"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Tacoma`"

	' var_Items.SelectItem(h0) = .t.
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.SelectItem(h0) = True"

	h0 = var_Items.AddItem("Janet Leverling")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Kirkland"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Kirkland`"

	h0 = var_Items.AddItem("Margaret Peacock")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Redmond"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Redmond`"

	h0 = var_Items.AddItem("Steven Buchanan")
	' var_Items.CellValue(h0,1) = "Sales Manager"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Manager`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Michael Suyama")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Robert King")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Laura Callahan")
	' var_Items.CellValue(h0,1) = "Inside Sales Coordinator"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Inside Sales Coordinator`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Anne Dodsworth")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

oGrid.EndUpdate()

623
How can I specify that all sequences in the filter pattern must be included in the list

Dim h0 as N
Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = .t.
oGrid.ContinueColumnScroll = .f.
oGrid.FocusColumnIndex = 1
oGrid.MarkSearchColumn = .f.
oGrid.SearchColumnIndex = 1
oGrid.FilterBarPromptVisible = 1
oGrid.FilterBarPromptType = 1
oGrid.FilterBarPromptPattern = "london manager"
var_Columns = oGrid.Columns
	' var_Columns.Add("Name").Width = 96
	var_Column = var_Columns.Add("Name")
	oGrid.TemplateDef = "dim var_Column"
	oGrid.TemplateDef = var_Column
	oGrid.Template = "var_Column.Width = 96"

	' var_Columns.Add("Title").Width = 96
	var_Column1 = var_Columns.Add("Title")
	oGrid.TemplateDef = "dim var_Column1"
	oGrid.TemplateDef = var_Column1
	oGrid.Template = "var_Column1.Width = 96"

	var_Columns.Add("City")
var_Items = oGrid.Items
	h0 = var_Items.AddItem("Nancy Davolio")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Andrew Fuller")
	' var_Items.CellValue(h0,1) = "Vice President, Sales"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Vice President, Sales`"

	' var_Items.CellValue(h0,2) = "Tacoma"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Tacoma`"

	' var_Items.SelectItem(h0) = .t.
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.SelectItem(h0) = True"

	h0 = var_Items.AddItem("Janet Leverling")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Kirkland"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Kirkland`"

	h0 = var_Items.AddItem("Margaret Peacock")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Redmond"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Redmond`"

	h0 = var_Items.AddItem("Steven Buchanan")
	' var_Items.CellValue(h0,1) = "Sales Manager"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Manager`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Michael Suyama")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Robert King")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Laura Callahan")
	' var_Items.CellValue(h0,1) = "Inside Sales Coordinator"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Inside Sales Coordinator`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Anne Dodsworth")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

oGrid.EndUpdate()

622
How do I change at runtime the filter prompt

Dim h0 as N
Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = .t.
oGrid.ContinueColumnScroll = .f.
oGrid.FocusColumnIndex = 1
oGrid.MarkSearchColumn = .f.
oGrid.SearchColumnIndex = 1
oGrid.FilterBarPromptVisible = 1
oGrid.FilterBarPromptPattern = "london manager"
var_Columns = oGrid.Columns
	' var_Columns.Add("Name").Width = 96
	var_Column = var_Columns.Add("Name")
	oGrid.TemplateDef = "dim var_Column"
	oGrid.TemplateDef = var_Column
	oGrid.Template = "var_Column.Width = 96"

	' var_Columns.Add("Title").Width = 96
	var_Column1 = var_Columns.Add("Title")
	oGrid.TemplateDef = "dim var_Column1"
	oGrid.TemplateDef = var_Column1
	oGrid.Template = "var_Column1.Width = 96"

	var_Columns.Add("City")
var_Items = oGrid.Items
	h0 = var_Items.AddItem("Nancy Davolio")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Andrew Fuller")
	' var_Items.CellValue(h0,1) = "Vice President, Sales"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Vice President, Sales`"

	' var_Items.CellValue(h0,2) = "Tacoma"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Tacoma`"

	' var_Items.SelectItem(h0) = .t.
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.SelectItem(h0) = True"

	h0 = var_Items.AddItem("Janet Leverling")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Kirkland"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Kirkland`"

	h0 = var_Items.AddItem("Margaret Peacock")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Redmond"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Redmond`"

	h0 = var_Items.AddItem("Steven Buchanan")
	' var_Items.CellValue(h0,1) = "Sales Manager"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Manager`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Michael Suyama")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Robert King")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Laura Callahan")
	' var_Items.CellValue(h0,1) = "Inside Sales Coordinator"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Inside Sales Coordinator`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Anne Dodsworth")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

oGrid.EndUpdate()

621
How do I specify to filter only a single column when using the filter prompt

Dim h0 as N
Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = .t.
oGrid.ContinueColumnScroll = .f.
oGrid.FocusColumnIndex = 1
oGrid.MarkSearchColumn = .f.
oGrid.SearchColumnIndex = 1
oGrid.FilterBarPromptVisible = 1
oGrid.FilterBarPromptColumns = "2,3"
oGrid.FilterBarPromptPattern = "london"
var_Columns = oGrid.Columns
	' var_Columns.Add("Name").Width = 96
	var_Column = var_Columns.Add("Name")
	oGrid.TemplateDef = "dim var_Column"
	oGrid.TemplateDef = var_Column
	oGrid.Template = "var_Column.Width = 96"

	' var_Columns.Add("Title").Width = 96
	var_Column1 = var_Columns.Add("Title")
	oGrid.TemplateDef = "dim var_Column1"
	oGrid.TemplateDef = var_Column1
	oGrid.Template = "var_Column1.Width = 96"

	var_Columns.Add("City")
var_Items = oGrid.Items
	h0 = var_Items.AddItem("Nancy Davolio")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Andrew Fuller")
	' var_Items.CellValue(h0,1) = "Vice President, Sales"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Vice President, Sales`"

	' var_Items.CellValue(h0,2) = "Tacoma"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Tacoma`"

	' var_Items.SelectItem(h0) = .t.
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.SelectItem(h0) = True"

	h0 = var_Items.AddItem("Janet Leverling")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Kirkland"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Kirkland`"

	h0 = var_Items.AddItem("Margaret Peacock")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Redmond"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Redmond`"

	h0 = var_Items.AddItem("Steven Buchanan")
	' var_Items.CellValue(h0,1) = "Sales Manager"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Manager`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Michael Suyama")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Robert King")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Laura Callahan")
	' var_Items.CellValue(h0,1) = "Inside Sales Coordinator"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Inside Sales Coordinator`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Anne Dodsworth")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

oGrid.EndUpdate()

620
How do I change the prompt or the caption being displayed in the filter bar

Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Columns as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = .t.
oGrid.ContinueColumnScroll = .f.
oGrid.FocusColumnIndex = 1
oGrid.MarkSearchColumn = .f.
oGrid.SearchColumnIndex = 1
oGrid.FilterBarPromptVisible = 1
oGrid.FilterBarPrompt = "changed"
var_Columns = oGrid.Columns
	' var_Columns.Add("Name").Width = 96
	var_Column = var_Columns.Add("Name")
	oGrid.TemplateDef = "dim var_Column"
	oGrid.TemplateDef = var_Column
	oGrid.Template = "var_Column.Width = 96"

	' var_Columns.Add("Title").Width = 96
	var_Column1 = var_Columns.Add("Title")
	oGrid.TemplateDef = "dim var_Column1"
	oGrid.TemplateDef = var_Column1
	oGrid.Template = "var_Column1.Width = 96"

	var_Columns.Add("City")
oGrid.EndUpdate()

619
How do I enable the filter prompt feature

Dim h0 as N
Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = .t.
oGrid.ContinueColumnScroll = .f.
oGrid.FocusColumnIndex = 1
oGrid.MarkSearchColumn = .f.
oGrid.SearchColumnIndex = 1
oGrid.FilterBarPromptVisible = 1
var_Columns = oGrid.Columns
	' var_Columns.Add("Name").Width = 96
	var_Column = var_Columns.Add("Name")
	oGrid.TemplateDef = "dim var_Column"
	oGrid.TemplateDef = var_Column
	oGrid.Template = "var_Column.Width = 96"

	' var_Columns.Add("Title").Width = 96
	var_Column1 = var_Columns.Add("Title")
	oGrid.TemplateDef = "dim var_Column1"
	oGrid.TemplateDef = var_Column1
	oGrid.Template = "var_Column1.Width = 96"

	var_Columns.Add("City")
var_Items = oGrid.Items
	h0 = var_Items.AddItem("Nancy Davolio")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Andrew Fuller")
	' var_Items.CellValue(h0,1) = "Vice President, Sales"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Vice President, Sales`"

	' var_Items.CellValue(h0,2) = "Tacoma"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Tacoma`"

	' var_Items.SelectItem(h0) = .t.
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.SelectItem(h0) = True"

	h0 = var_Items.AddItem("Janet Leverling")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Kirkland"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Kirkland`"

	h0 = var_Items.AddItem("Margaret Peacock")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "Redmond"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Redmond`"

	h0 = var_Items.AddItem("Steven Buchanan")
	' var_Items.CellValue(h0,1) = "Sales Manager"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Manager`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Michael Suyama")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Robert King")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

	h0 = var_Items.AddItem("Laura Callahan")
	' var_Items.CellValue(h0,1) = "Inside Sales Coordinator"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Inside Sales Coordinator`"

	' var_Items.CellValue(h0,2) = "Seattle"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Anne Dodsworth")
	' var_Items.CellValue(h0,1) = "Sales Representative"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,1) = `Sales Representative`"

	' var_Items.CellValue(h0,2) = "London"
	oGrid.TemplateDef = "dim var_Items,h0"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h0
	oGrid.Template = "var_Items.CellValue(h0,2) = `London`"

oGrid.EndUpdate()

618
How can I control the colors that can be applied to an EBN part

' Occurs when the user changes the cell's content.
function Change as v (Item  as  OLE::Exontrol.Grid.1::HITEM,ColIndex  as  N,NewValue  as  A)
	Dim var_Items as P
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	var_Items = oGrid.Items
		' var_Items.ItemBackColor(var_Items.FirstVisibleItem) = NewValue
		oGrid.TemplateDef = "dim var_Items"
		oGrid.TemplateDef = var_Items
		oGrid.Template = "var_Items.ItemBackColor(FirstVisibleItem) = NewValue"

end function

Dim h as N
Dim oGrid as P
Dim var_Appearance as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Columns as P
Dim var_Editor as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
var_Appearance = oGrid.VisualAppearance
	var_Appearance.Add(2,"c:\exontrol\images\normal.ebn")
	var_Appearance.Add(1,"CP:2 10 3 -10 -5")
oGrid.SelBackColor = oGrid.BackColor
oGrid.SelForeColor = oGrid.ForeColor
oGrid.ScrollBySingleLine = .t.
oGrid.TreeColumnIndex = -1
var_Columns = oGrid.Columns
	var_Column = var_Columns.Add("Test")
		var_Column.Width = 32
	var_Column1 = var_Columns.Add("RGB")
		var_Editor = var_Column1.Editor
			var_Editor.EditType = 20
			' var_Editor.Option(44) = 255
			oGrid.TemplateDef = "dim var_Editor"
			oGrid.TemplateDef = var_Editor
			oGrid.Template = "var_Editor.Option(44) = 255"

			' var_Editor.Option(41) = -60
			oGrid.TemplateDef = "dim var_Editor"
			oGrid.TemplateDef = var_Editor
			oGrid.Template = "var_Editor.Option(41) = -60"

var_Items = oGrid.Items
	h = var_Items.AddItem("")
	' var_Items.CellHAlignment(h,0) = 1
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellHAlignment(h,0) = 1"

	' var_Items.ItemDivider(h) = 0
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemDivider(h) = 0"

	' var_Items.ItemBackColor(h) = 16777216
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemBackColor(h) = 16777216"

	' var_Items.ItemHeight(h) = 36
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ItemHeight(h) = 36"

	' var_Items.SelectableItem(h) = .f.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SelectableItem(h) = False"

	h = var_Items.InsertItem(0,1,"Red")
	' var_Items.CellValue(h,1) = 255
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = 255"

	h = var_Items.InsertItem(0,255,"Green")
	' var_Items.CellValue(h,1) = 255
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = 255"

	h = var_Items.InsertItem(0,65536,"Blue")
	' var_Items.CellValue(h,1) = 255
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = 255"

oGrid.EndUpdate()

617
I know this is fairly basic, but could you send me a sample that places a tree in the first column

Dim h as N
Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
oGrid.Columns.Add("heading")
var_Items = oGrid.Items
	h = var_Items.AddItem("Parent 1")
	var_Items.InsertItem(h,,"Child A")
	var_Items.InsertItem(var_Items.InsertItem(h,,"Child B"),,"GrandChild C")
	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("Parent 2")
	var_Items.InsertItem(h,,"Child D")
	var_Items.InsertItem(h,,"Child E")
	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

oGrid.EndUpdate()

616
How can I get the caption of focused item
' Fired after a new item has been selected.
function SelectionChanged as v ()
	Dim var_Items as P
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	var_Items = oGrid.Items
		? "Handle" 
		? var_Items.FocusItem 
		? "Caption" 
		? var_Items.CellCaption(var_Items.FocusItem,0) 
end function

Dim h as N
Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
oGrid.Columns.Add("Items")
var_Items = oGrid.Items
	h = var_Items.AddItem("R1")
	var_Items.InsertItem(h,,"Cell 1.1")
	var_Items.InsertItem(h,,"Cell 1.2")
	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("R2")
	var_Items.InsertItem(h,,"Cell 2.1")
	var_Items.InsertItem(h,,"Cell 2.2")
	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

oGrid.EndUpdate()

615
How can I get the caption of selected item
' Fired after a new item has been selected.
function SelectionChanged as v ()
	Dim var_Items as P
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	var_Items = oGrid.Items
		? "Handle" 
		? var_Items.SelectedItem(0) 
		? "Caption" 
		? var_Items.CellCaption(var_Items.SelectedItem(0),0) 
end function

Dim h as N
Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
oGrid.Columns.Add("Items")
var_Items = oGrid.Items
	h = var_Items.AddItem("R1")
	var_Items.InsertItem(h,,"Cell 1.1")
	var_Items.InsertItem(h,,"Cell 1.2")
	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("R2")
	var_Items.InsertItem(h,,"Cell 2.1")
	var_Items.InsertItem(h,,"Cell 2.2")
	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

oGrid.EndUpdate()

614
Is it possible to let users selects cells as in Excel

Dim h as N
Dim h1 as N
Dim oGrid as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.FullRowSelect = 1
oGrid.SingleSel = .f.
oGrid.ReadOnly = -1
oGrid.MarkSearchColumn = .f.
oGrid.ShowFocusRect = .f.
oGrid.LinesAtRoot = -1
oGrid.SelForeColor = 0
oGrid.SelBackColor = 15917512
var_Columns = oGrid.Columns
	var_Columns.Add("A")
	var_Column = var_Columns.Add("B")
		var_Column.AllowSizing = .f.
		var_Column.Width = 24
	var_Column1 = var_Columns.Add("C")
		var_Column1.AllowSizing = .f.
		var_Column1.Width = 24
		' var_Column1.Def(0) = 1
		oGrid.TemplateDef = "dim var_Column1"
		oGrid.TemplateDef = var_Column1
		oGrid.Template = "var_Column1.Def(0) = 1"

		var_Column1.PartialCheck = .t.
	var_Column2 = var_Columns.Add("D")
		var_Column2.AllowSizing = .f.
		var_Column2.Width = 24
		' var_Column2.Def(1) = 1
		oGrid.TemplateDef = "dim var_Column2"
		oGrid.TemplateDef = var_Column2
		oGrid.Template = "var_Column2.Def(1) = 1"

var_Items = oGrid.Items
	h = var_Items.InsertItem(,,"Group 1")
	h1 = var_Items.InsertItem(h,,16)
	' var_Items.CellValue(h1,1) = 17
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,1) = 17"

	h1 = var_Items.InsertItem(h,,2)
	' var_Items.CellValue(h1,1) = 11
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,1) = 11"

	h1 = var_Items.InsertItem(h,,2)
	' var_Items.ItemBackColor(h1) = 15790320
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.ItemBackColor(h1) = 15790320"

	' var_Items.CellValue(h1,1) = 9
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,1) = 9"

	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.InsertItem(,,"Group 2")
	' var_Items.CellValueFormat(h,2) = 1
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,2) = 1"

	h1 = var_Items.InsertItem(h,,16)
	' var_Items.CellValue(h1,1) = 9
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,1) = 9"

	h1 = var_Items.InsertItem(h,,12)
	' var_Items.CellValue(h1,1) = 11
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,1) = 11"

	h1 = var_Items.InsertItem(h,,2)
	' var_Items.CellValue(h1,1) = 2
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,1) = 2"

	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

	' var_Items.SelectItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.SelectItem(h) = True"

oGrid.EndUpdate()

613
Is it possible to change the style for the vertical or horizontal grid lines, in the list area

Dim h as N
Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.DrawGridLines = -1
oGrid.GridLineStyle = 33 'exGridLinesVSolid + exGridLinesHDot4
oGrid.Columns.Add("C1")
oGrid.Columns.Add("C2")
oGrid.Columns.Add("C3")
var_Items = oGrid.Items
	h = var_Items.AddItem("Item 1")
	' var_Items.CellValue(h,1) = "SubItem 1.2"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = `SubItem 1.2`"

	' var_Items.CellValue(h,2) = "SubItem 1.3"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,2) = `SubItem 1.3`"

	h = var_Items.AddItem("Item 2")
	' var_Items.CellValue(h,1) = "SubItem 2.2"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = `SubItem 2.2`"

	' var_Items.CellValue(h,2) = "SubItem 2.3"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,2) = `SubItem 2.3`"

oGrid.EndUpdate()

612
Is it possible to change the style for the grid lines, for instance to be solid not dotted

Dim oGrid as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.DrawGridLines = -1
oGrid.GridLineStyle = 48
oGrid.Columns.Add("Column")
oGrid.EndUpdate()

611
I have some buttons added on the control's scroll bar, how can I can know when the button is being clicked

' Occurs when the user clicks a button in the scrollbar.
function ScrollButtonClick as v (ScrollBar  as  OLE::Exontrol.Grid.1::ScrollBarEnum,ScrollPart  as  OLE::Exontrol.Grid.1::ScrollPartEnum)
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	? ScrollBar 
	? ScrollPart 
end function

Dim oGrid as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.Template = "ScrollPartVisible(1,32768) = True" // oGrid.ScrollPartVisible(1,32768) = .t.
oGrid.Template = "ScrollPartVisible(1,16384) = True" // oGrid.ScrollPartVisible(1,16384) = .t.
oGrid.Template = "ScrollPartVisible(1,1) = True" // oGrid.ScrollPartVisible(1,1) = .t.
oGrid.Template = "ScrollPartVisible(1,2) = True" // oGrid.ScrollPartVisible(1,2) = .t.
oGrid.ScrollBars = 5

610
How do I get notified once the user clicks a hyperlink created using the anchor HTML tag

' Occurs when an anchor element is clicked.
function AnchorClick as v (AnchorID  as  C,Options  as  C)
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	? AnchorID 
	? Options 
end function

Dim oGrid as P
Dim var_Column as local
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
' oGrid.Columns.Add("Default").Def(17) = 1
var_Column = oGrid.Columns.Add("Default")
oGrid.TemplateDef = "dim var_Column"
oGrid.TemplateDef = var_Column
oGrid.Template = "var_Column.Def(17) = 1"

var_Items = oGrid.Items
	var_Items.AddItem("This is a link: <aex.com;1>www.exontrol.com</a>")
	var_Items.AddItem("This is a link: <aex.net;2>www.exontrol.net</a>")

609
Is it possible to start editing a cell when double click it

' Occurs when the user dblclk the left mouse button over an object.
function DblClick as v (Shift  as  N,X  as  OLE::Exontrol.Grid.1::OLE_XPOS_PIXELS,Y  as  OLE::Exontrol.Grid.1::OLE_YPOS_PIXELS)
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	oGrid.Edit()
end function

Dim oGrid as P
Dim var_Editor as local
Dim var_Editor1 as local
Dim var_Items as P
Dim var_Items1 as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.AutoEdit = .f.
oGrid.MarkSearchColumn = .f.
' oGrid.Columns.Add("Edit1").Editor.EditType = 1
var_Editor = oGrid.Columns.Add("Edit1").Editor
oGrid.TemplateDef = "dim var_Editor"
oGrid.TemplateDef = var_Editor
oGrid.Template = "var_Editor.EditType = 1"

' oGrid.Columns.Add("Edit2").Editor.EditType = 1
var_Editor1 = oGrid.Columns.Add("Edit2").Editor
oGrid.TemplateDef = "dim var_Editor1"
oGrid.TemplateDef = var_Editor1
oGrid.Template = "var_Editor1.EditType = 1"

var_Items = oGrid.Items
	' var_Items.CellValue(var_Items.AddItem(1),1) = 2
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(1),1) = 2"

var_Items1 = oGrid.Items
	' var_Items1.CellValue(var_Items1.AddItem(3),1) = 4
	oGrid.TemplateDef = "dim var_Items1"
	oGrid.TemplateDef = var_Items1
	oGrid.Template = "var_Items1.CellValue(AddItem(3),1) = 4"

oGrid.EndUpdate()

608
Is it possible to disable standard single-click behavior for this column, so I manually could call Edit() when needed

' Occurs when the user dblclk the left mouse button over an object.
function DblClick as v (Shift  as  N,X  as  OLE::Exontrol.Grid.1::OLE_XPOS_PIXELS,Y  as  OLE::Exontrol.Grid.1::OLE_YPOS_PIXELS)
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	oGrid.Edit()
end function

Dim oGrid as P
Dim var_Editor as local
Dim var_Editor1 as local
Dim var_Items as P
Dim var_Items1 as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.AutoEdit = .f.
oGrid.MarkSearchColumn = .f.
' oGrid.Columns.Add("Edit1").Editor.EditType = 1
var_Editor = oGrid.Columns.Add("Edit1").Editor
oGrid.TemplateDef = "dim var_Editor"
oGrid.TemplateDef = var_Editor
oGrid.Template = "var_Editor.EditType = 1"

' oGrid.Columns.Add("Edit2").Editor.EditType = 1
var_Editor1 = oGrid.Columns.Add("Edit2").Editor
oGrid.TemplateDef = "dim var_Editor1"
oGrid.TemplateDef = var_Editor1
oGrid.Template = "var_Editor1.EditType = 1"

var_Items = oGrid.Items
	' var_Items.CellValue(var_Items.AddItem(1),1) = 2
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(1),1) = 2"

var_Items1 = oGrid.Items
	' var_Items1.CellValue(var_Items1.AddItem(3),1) = 4
	oGrid.TemplateDef = "dim var_Items1"
	oGrid.TemplateDef = var_Items1
	oGrid.Template = "var_Items1.CellValue(AddItem(3),1) = 4"

oGrid.EndUpdate()

607
How can I get or restore the old or previously value for the cell being changed
' Occurs when the user changes the cell's content.
function Change as v (Item  as  OLE::Exontrol.Grid.1::HITEM,ColIndex  as  N,NewValue  as  A)
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	? "Old-Value:" 
	? oGrid.Items.CellValue(Item,ColIndex) 
	? "New-Value:" 
	? NewValue 
end function

Dim oGrid as P
Dim var_Editor as local
Dim var_Editor1 as local
Dim var_Items as P
Dim var_Items1 as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.MarkSearchColumn = .f.
' oGrid.Columns.Add("Edit1").Editor.EditType = 1
var_Editor = oGrid.Columns.Add("Edit1").Editor
oGrid.TemplateDef = "dim var_Editor"
oGrid.TemplateDef = var_Editor
oGrid.Template = "var_Editor.EditType = 1"

' oGrid.Columns.Add("Edit2").Editor.EditType = 1
var_Editor1 = oGrid.Columns.Add("Edit2").Editor
oGrid.TemplateDef = "dim var_Editor1"
oGrid.TemplateDef = var_Editor1
oGrid.Template = "var_Editor1.EditType = 1"

var_Items = oGrid.Items
	' var_Items.CellValue(var_Items.AddItem(1),1) = 2
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(1),1) = 2"

var_Items1 = oGrid.Items
	' var_Items1.CellValue(var_Items1.AddItem(3),1) = 4
	oGrid.TemplateDef = "dim var_Items1"
	oGrid.TemplateDef = var_Items1
	oGrid.Template = "var_Items1.CellValue(AddItem(3),1) = 4"

oGrid.EndUpdate()

606
How can I get the item from the cursor
' Occurs when the user moves the mouse.
function MouseMove as v (Button  as  N,Shift  as  N,X  as  OLE::Exontrol.Grid.1::OLE_XPOS_PIXELS,Y  as  OLE::Exontrol.Grid.1::OLE_YPOS_PIXELS)
	Dim h as N
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	h = oGrid.ItemFromPoint(-1,-1,c,hit)
	? "Handle" 
	? h 
	? "Index" 
	? oGrid.Items.ItemToIndex(h) 
end function

Dim h as N
Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
oGrid.DrawGridLines = 1
oGrid.Columns.Add("Items")
var_Items = oGrid.Items
	h = var_Items.AddItem("R1")
	var_Items.InsertItem(h,,"Cell 1.1")
	var_Items.InsertItem(h,,"Cell 1.2")
	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("R2")
	var_Items.InsertItem(h,,"Cell 2.1")
	var_Items.InsertItem(h,,"Cell 2.2")
	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

oGrid.EndUpdate()

605
How can I get the column from the cursor, not only in the header

' Occurs when the user moves the mouse.
function MouseMove as v (Button  as  N,Shift  as  N,X  as  OLE::Exontrol.Grid.1::OLE_XPOS_PIXELS,Y  as  OLE::Exontrol.Grid.1::OLE_YPOS_PIXELS)
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	? oGrid.ColumnFromPoint(-1,0) 
end function

Dim h as N
Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
oGrid.Columns.Add("P1")
oGrid.Columns.Add("P2")
oGrid.DrawGridLines = -1
var_Items = oGrid.Items
	h = var_Items.AddItem("R1")
	' var_Items.CellValue(h,1) = "R2"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = `R2`"

	' var_Items.CellValue(var_Items.InsertItem(h,,"Cell 1.1"),1) = "Cell 1.2"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(InsertItem(h,,`Cell 1.1`),1) = `Cell 1.2`"

	' var_Items.CellValue(var_Items.InsertItem(h,,"Cell 2.1"),1) = "Cell 2.2"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(InsertItem(h,,`Cell 2.1`),1) = `Cell 2.2`"

	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

oGrid.EndUpdate()

604
How can I get the column from the cursor

' Occurs when the user moves the mouse.
function MouseMove as v (Button  as  N,Shift  as  N,X  as  OLE::Exontrol.Grid.1::OLE_XPOS_PIXELS,Y  as  OLE::Exontrol.Grid.1::OLE_YPOS_PIXELS)
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	? oGrid.ColumnFromPoint(-1,-1) 
end function

Dim h as N
Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
oGrid.DrawGridLines = -1
oGrid.Columns.Add("P1")
oGrid.Columns.Add("P2")
var_Items = oGrid.Items
	h = var_Items.AddItem("R1")
	' var_Items.CellValue(h,1) = "R2"
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(h,1) = `R2`"

	' var_Items.CellValue(var_Items.InsertItem(h,,"Cell 1.1"),1) = "Cell 1.2"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(InsertItem(h,,`Cell 1.1`),1) = `Cell 1.2`"

	' var_Items.CellValue(var_Items.InsertItem(h,,"Cell 2.1"),1) = "Cell 2.2"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(InsertItem(h,,`Cell 2.1`),1) = `Cell 2.2`"

	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

oGrid.EndUpdate()

603
How can I get the cell's caption from the cursor
' Occurs when the user moves the mouse.
function MouseMove as v (Button  as  N,Shift  as  N,X  as  OLE::Exontrol.Grid.1::OLE_XPOS_PIXELS,Y  as  OLE::Exontrol.Grid.1::OLE_YPOS_PIXELS)
	Dim h as N
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	h = oGrid.ItemFromPoint(-1,-1,c,hit)
	? oGrid.Items.CellCaption(h,c) 
end function

Dim h as N
Dim oGrid as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
oGrid.Columns.Add("Items")
var_Items = oGrid.Items
	h = var_Items.AddItem("R1")
	var_Items.InsertItem(h,,"Cell 1.1")
	var_Items.InsertItem(h,,"Cell 1.2")
	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("R2")
	var_Items.InsertItem(h,,"Cell 2.1")
	var_Items.InsertItem(h,,"Cell 2.2")
	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

oGrid.EndUpdate()

602
How can I customize the items based on the values in the cells

Dim h as N
Dim h1 as N
Dim oGrid as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Column3 as P
Dim var_Columns as P
Dim var_ConditionalFormat as P
Dim var_ConditionalFormat1 as P
Dim var_ConditionalFormat2 as P
Dim var_ConditionalFormats as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.MarkSearchColumn = .f.
var_ConditionalFormats = oGrid.ConditionalFormats
	var_ConditionalFormat = var_ConditionalFormats.Add("%1 >4")
		var_ConditionalFormat.Bold = .t.
		var_ConditionalFormat.StrikeOut = .t.
		var_ConditionalFormat.ForeColor = 255
		var_ConditionalFormat.ApplyTo = -1
	var_ConditionalFormat1 = var_ConditionalFormats.Add("%2 > 4")
		var_ConditionalFormat1.Bold = .t.
		var_ConditionalFormat1.StrikeOut = .t.
		var_ConditionalFormat1.ForeColor = 255
		var_ConditionalFormat1.ApplyTo = 2 '2 + 
	var_ConditionalFormat2 = var_ConditionalFormats.Add("%3 > 4")
		var_ConditionalFormat2.Bold = .t.
		var_ConditionalFormat2.StrikeOut = .t.
		var_ConditionalFormat2.ForeColor = 255
		var_ConditionalFormat2.ApplyTo = 3 '3 + 
var_Columns = oGrid.Columns
	var_Columns.Add("Name")
	var_Column = var_Columns.Add("A")
		var_Column.SortType = 1
		var_Column.AllowSizing = .f.
		var_Column.Width = 36
		var_Column.FormatColumn = "len(value) ? value + ' +'"
		var_Column.Editor.EditType = 4
	var_Column1 = var_Columns.Add("B")
		var_Column1.SortType = 1
		var_Column1.AllowSizing = .f.
		var_Column1.Width = 36
		var_Column1.FormatColumn = "len(value) ? value + ' +'"
		var_Column1.Editor.EditType = 4
	var_Column2 = var_Columns.Add("C")
		var_Column2.SortType = 1
		var_Column2.AllowSizing = .f.
		var_Column2.Width = 36
		var_Column2.FormatColumn = "len(value) ? value + ' ='"
		var_Column2.Editor.EditType = 4
	var_Column3 = var_Columns.Add("A+B+C")
		var_Column3.SortType = 1
		var_Column3.AllowSizing = .f.
		var_Column3.Width = 64
		var_Column3.ComputedField = "%1+%2+%3"
		var_Column3.FormatColumn = "((0:=dbl(value)) < 10? '<fgcolor=808080><font ;7>' :'<b>') + currency(=:0)"
		' var_Column3.Def(17) = 1
		oGrid.TemplateDef = "dim var_Column3"
		oGrid.TemplateDef = var_Column3
		oGrid.Template = "var_Column3.Def(17) = 1"

var_Items = oGrid.Items
	h = var_Items.AddItem("Root")
	' var_Items.CellValueFormat(h,4) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,4) = 2"

	h1 = var_Items.InsertItem(h,,"Child 1")
	' var_Items.CellValue(h1,1) = 7
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,1) = 7"

	' var_Items.CellValue(h1,2) = 3
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,2) = 3"

	' var_Items.CellValue(h1,3) = 1
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,3) = 1"

	h1 = var_Items.InsertItem(h,,"Child 2")
	' var_Items.CellValue(h1,1) = 2
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,1) = 2"

	' var_Items.CellValue(h1,2) = 5
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,2) = 5"

	' var_Items.CellValue(h1,3) = 12
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,3) = 12"

	h1 = var_Items.InsertItem(h,,"Child 3")
	' var_Items.CellValue(h1,1) = 2
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,1) = 2"

	' var_Items.CellValue(h1,2) = 2
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,2) = 2"

	' var_Items.CellValue(h1,3) = 4
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,3) = 4"

	h1 = var_Items.InsertItem(h,,"Child 4")
	' var_Items.CellValue(h1,1) = 2
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,1) = 2"

	' var_Items.CellValue(h1,2) = 9
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,2) = 9"

	' var_Items.CellValue(h1,3) = 4
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,3) = 4"

	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

oGrid.EndUpdate()

601
Is it is possible to have a column computing values from other columns

Dim h as N
Dim h1 as N
Dim oGrid as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Column3 as P
Dim var_Columns as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.MarkSearchColumn = .f.
var_Columns = oGrid.Columns
	var_Columns.Add("Name")
	var_Column = var_Columns.Add("A")
		var_Column.SortType = 1
		var_Column.AllowSizing = .f.
		var_Column.Width = 36
		var_Column.FormatColumn = "len(value) ? value + ' +'"
		var_Column.Editor.EditType = 4
	var_Column1 = var_Columns.Add("B")
		var_Column1.SortType = 1
		var_Column1.AllowSizing = .f.
		var_Column1.Width = 36
		var_Column1.FormatColumn = "len(value) ? value + ' +'"
		var_Column1.Editor.EditType = 4
	var_Column2 = var_Columns.Add("C")
		var_Column2.SortType = 1
		var_Column2.AllowSizing = .f.
		var_Column2.Width = 36
		var_Column2.FormatColumn = "len(value) ? value + ' ='"
		var_Column2.Editor.EditType = 4
	var_Column3 = var_Columns.Add("A+B+C")
		var_Column3.SortType = 1
		var_Column3.AllowSizing = .f.
		var_Column3.Width = 64
		var_Column3.ComputedField = "%1+%2+%3"
		var_Column3.FormatColumn = "((0:=dbl(value)) < 10? '<fgcolor=808080><font ;7>' :'<b>') + currency(=:0)"
		' var_Column3.Def(17) = 1
		oGrid.TemplateDef = "dim var_Column3"
		oGrid.TemplateDef = var_Column3
		oGrid.Template = "var_Column3.Def(17) = 1"

var_Items = oGrid.Items
	h = var_Items.AddItem("Root")
	' var_Items.CellValueFormat(h,4) = 2
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,4) = 2"

	h1 = var_Items.InsertItem(h,,"Child 1")
	' var_Items.CellValue(h1,1) = 7
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,1) = 7"

	' var_Items.CellValue(h1,2) = 3
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,2) = 3"

	' var_Items.CellValue(h1,3) = 1
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,3) = 1"

	h1 = var_Items.InsertItem(h,,"Child 2")
	' var_Items.CellValue(h1,1) = 2
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,1) = 2"

	' var_Items.CellValue(h1,2) = 5
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,2) = 5"

	' var_Items.CellValue(h1,3) = 12
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,3) = 12"

	h1 = var_Items.InsertItem(h,,"Child 3")
	' var_Items.CellValue(h1,1) = 2
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,1) = 2"

	' var_Items.CellValue(h1,2) = 2
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,2) = 2"

	' var_Items.CellValue(h1,3) = 4
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,3) = 4"

	h1 = var_Items.InsertItem(h,,"Child 4")
	' var_Items.CellValue(h1,1) = 2
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,1) = 2"

	' var_Items.CellValue(h1,2) = 9
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,2) = 9"

	' var_Items.CellValue(h1,3) = 4
	oGrid.TemplateDef = "dim var_Items,h1"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h1
	oGrid.Template = "var_Items.CellValue(h1,3) = 4"

	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

oGrid.EndUpdate()